gpt4 book ai didi

matlab - 在 MATLAB 中重载函数

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:58 27 4
gpt4 key购买 nike

我想在 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

如果这两种情况相似,那么这不会造成混淆,也不会造成麻烦;如果这两个函数非常不同,您应该认真考虑使用具有不同名称的不同函数。虽然在基于纸张的科学计算中,您可以根据索引的数量轻松区分数量,但这在编程中可能非常令人困惑(即使在 matlab 中可以这样做,我也建议不要这样做).

关于matlab - 在 MATLAB 中重载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33196266/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com