我有一个输入字符串的函数(例如type1)。根据字符串,它输出一个结构。但是,我想从另一个函数向此函数添加更多类型(例如type3)。
function [ typeinfo ] = myType( string )
if strcmpi('type1',string)
typeinfo.x = 1;
typeinfo.y = 4;
elseif strcmpi('type2',string)
typeinfo.x = 4;
typeinfo.y = 1;
end
最后,我希望我的函数myType为:
function [ typeinfo ] = myType( string )
if strcmpi('type1',string)
typeinfo.x = 1;
typeinfo.y = 4;
elseif strcmpi('type2',string)
typeinfo.x = 4;
typeinfo.y = 1;
elseif strcmpi('type3',string)
typeinfo.x = 5;
typeinfo.y = 2;
end
提前致谢。
答案 0 :(得分:4)
将易失性数据存储在代码中是不好的做法,请使用足够的数据结构,例如Map:
%just a helper for shorter code
st=@(x,y)(struct('x',x,'y',y));
%initialise the data as defined in your first function
T=containers.Map({'type1','type2'},{st(1,4),st(4,1)});
%add another type
T('type3')=st(5,3)
%get information for a type
T('type2')