www.gusucode.com > mbc 工具箱 matlab 源码程序 > mbc/@mbcfoundation/@propertyinterface/disp.m

    function disp(p)
%DISP

% Copyright 2006-2007 The MathWorks, Inc.

if isempty(p.Description)
    % just show property name
    fprintf('     %s',p.Name)
else
    % include description
    fprintf('     %s: %s',p.Name,p.Description)
end
if isempty(p.SetFunction)
    % mark readonly properties
    fprintf(' (read-only)')
elseif ~isempty(p.Type) && ischar(p.Type)
    optstr= iDispOptions(p.Options);
    if isempty(optstr)
        fprintf(' (%s)',p.Type)
    else
        fprintf(' (%s: %s)',p.Type,optstr)
    end
end
fprintf('\n')


%% iDispOptions
function s = iDispOptions(Opt)
% convert options to string

s = '';
if isempty(Opt)
    s = '';
elseif iscell(Opt)
    % display a cell as {e1,e2,...,en}
    s = '{';
    for i=1:length(Opt)
        s= [s,iDispOptions(Opt{i}),','];
    end
    s(end)= '}';
elseif ischar(Opt)
    % char displayed as 'a'
    s = sprintf('''%s''',Opt);
elseif isnumeric(Opt) && isscalar(Opt)
    % scalar 
    s = sprintf('%g',Opt);
elseif isnumeric(Opt)
    % [v1,v2,...,vn]
    s = sprintf('%g,',Opt);
    s = ['[',s(1:end-1),']'];
end