- added
git-svn-id: http://moon:8086/svn/matlab/trunk@156 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
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
|
||||
Reference in New Issue
Block a user