O.T*_*.T. 3 matlab overloading
我想在MATLAB中修改一个计算给定公式的代码,我想用与给定公式中相同的符号编写代码.在公式中,我有两个不同的函数,它们具有相同的名称,但只有参数的数量不同:Kn(a,b)
和Kn(a)
.
MATLAB中有没有一种方法可以像c ++一样定义重载函数?
如果要使用不同数量的输入参数定义两个具有相同名称的函数,则应在同一函数文件中定义它们并用于varargin/nargin
处理这两种情况:
function out=Kn(varargin)
if nargin==1
a=varargin{1};
%
%here do what Kn(a) does
%
%out=...
elseif nargin==2
a=varargin{1};
b=varargin{2};
%
%here do what Kn(a,b) does
%
%out=...
else
error('Kn accepts up to 2 input arguments!')
end
%or maybe here do what both Kn(a) and Kn(a,b) do after some initial differences
%and return 'out' here
Run Code Online (Sandbox Code Playgroud)
如果这两个案件相似,那么这不会造成混淆,也不会很麻烦; 如果这两个函数非常不同,您应该认真考虑使用具有单独名称的单独函数.在基于纸张的科学计算中,您可以根据索引的数量轻松区分数量,这在编程中可能会非常混乱(即使可以在matlab中进行,我也会建议不要使用它).