当在多个工具箱中导入相同的函数时,如何确保matlab调用正确的函数

时间:2016-10-28 01:07:26

标签: matlab

tau = 5;
K = 2;
A = -1/tau;
B = K/tau;
C = 1;
D = 0;

sys = ss(A,B,C,D)
Undefined function 'ss' for input arguments of type 'double'.

 >> which -all ss
 /Applications/MATLAB_R2016b.app/toolbox/ident/ident/
  @idParametric/ss.m           % idParametric method
 /Applications/MATLAB_R2016b.app/toolbox/shared/controllib/engine/
  @StaticModel/ss.m            % StaticModel method
 /Applications/MATLAB_R2016b.app/toolbox/signal/signal/
 @dfilt/ss.m                   % dfilt method

函数ss似乎是在3个工具箱中导入的。 不知道这里有什么问题,我已经尝试将路径重置为默认路径,从路径中删除工具箱功能等。

1 个答案:

答案 0 :(得分:1)

ss是为各种类(idParametricStaticModeldfilt)定义的方法。调用哪个版本的ss取决于函数的第一个输入的类。例如,如果您有一个名为idParametric的{​​{1}}对象,objss(obj)将调用为该特定类定义的ss.obj()方法。通过这种方式,您可以拥有一个函数名称,该函数名称对于不同的数据类型或对象的行为方式不同。

如果是您的情况,您的第一个输入属于ssdouble方法定义,导致错误。