view copyWithDefault.m @ 511:57f3493f851b feature/quantumTriangles

Added sqrt of Ji in the right places, not sure about the interfaces, will not test it properly now
author Ylva Rydin <ylva.rydin@telia.com>
date Thu, 08 Jun 2017 10:33:36 +0200
parents 499653b553b8
children
line wrap: on
line source

% Copy the struct src to dest with default values from default
%   dest = copyWithDefault(src, default)
function dest = copyWithDefault(src, default)
    % src does not have a value => use default
    if isempty(src)
        dest = default;
        return
    end

    % src has a value and is not a struct => use src
    % src has a value and default is not a struct => use src
    if ~isstruct(src) || ~isstruct(default)
        dest = src;
        return
    end


    % src has a value and is a struct => add all default fields
    dest = src;

    fn = fieldnames(default);
    for i = 1:length(fn)
        if isfield(src, fn{i})
            srcField = src.(fn{i});
        else
            srcField = [];
        end

        dest.(fn{i}) = copyWithDefault(srcField, default.(fn{i}));
    end
end