git-svn-id: http://moon:8086/svn/matlab/trunk@156 801c6759-fa7c-4059-a304-17956f83a07c
46 lines
847 B
Matlab
46 lines
847 B
Matlab
function params = parse_myparams (params_default, arglist)
|
|
|
|
# Use:
|
|
# params = parse_myparams (struct("A", 1, "B", 2), {"B", 42})
|
|
# Returns : params = struct("A", 1, "B", 42)
|
|
#
|
|
|
|
% Parse parameters
|
|
params = params_default;
|
|
names = fieldnames(params);
|
|
|
|
for k=1:2:length(arglist)-1,
|
|
found = false;
|
|
for n=1:length(names),
|
|
if strcmpi(arglist{k}, names{n})
|
|
params.(names{n}) = arglist{k+1};
|
|
found = true;
|
|
end
|
|
end
|
|
if ~found
|
|
error("Not found!");
|
|
endif
|
|
end
|
|
|
|
if nargout == 0
|
|
print_parameters(params);
|
|
endif
|
|
|
|
function print_parameters(params)
|
|
align = 32;
|
|
names = fieldnames(params);
|
|
for n=1:length(names),
|
|
fprintf('%s', names{n});
|
|
remain = align - length(names{n});
|
|
if remain < 0
|
|
error('Invalid variable length!');
|
|
else
|
|
for j=1:remain
|
|
fprintf(' ');
|
|
end
|
|
fprintf('= %g\n', params.(names{n}));
|
|
end
|
|
end
|
|
endfunction
|
|
endfunction
|