从另一个函数添加代码到函数 - Matlab

时间:2015-03-30 08:42:42

标签: matlab function

我有一个输入字符串的函数(例如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

提前致谢。

1 个答案:

答案 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')