如何在MATLAB中用可选参数声明函数?
例如:function [a] = train(x, y, opt),opt必须是可选参数.
如果需要使用可选参数的音调创建函数,该怎么办?有没有办法在命名传递的参数后调用该函数以提高可读性:
foo(123, and=456)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,并且有许多函数需要创建,并且它们确实需要大量的调试,所以不必只是按下运行按钮,我必须转到命令窗口并给出一个函数调用.
MATLAB是否支持为python输入参数分配默认值?
在python中
def some_fcn(arg1 = a, arg2 = b)
% THE CODE
Run Code Online (Sandbox Code Playgroud)
如果你现在调用它而不传递参数它不会给出错误,但如果你在MATLAB中尝试相同它会给出一个错误.
由于遗留函数调用,我有时会被迫编写像这样的丑陋包装器
function return = someWrapper(someField)
a = someField.a;
b = someField.b;
% and so on, realistically it's more like ten variables that
% could actually be grouped in a struct
save('params.mat', 'a', 'b'); %etc.
% then, on another machine, a function loads params.mat, does the calculations
% and saves the result in result.mat containing the variables c,d,...
load('result.mat', 'c', 'd');
return.c = c;
return.d = d;
% again, it's more than just two return values
Run Code Online (Sandbox Code Playgroud)
因此,基本思想是创建与someField字段名称相同的变量,运行函数并return使用 …
可能重复:
Matlab中的默认参数
我有一个函数,大约有7个参数要传递.其中3个是强制性的,其余4个是可选参数.我想只传递前3个和最后一个参数.我该怎么做呢?
我们假设函数是:function [...] = fun(a,b,c,d,e,f,g)
a,b,c - 所需的输入.
d,e,f,g - 可选输入.
我想打电话给乐趣并传递a,b,c和g的值.
在R中,我可以用非常简洁的方式指定它:fun(a = 1,b = 4,c = 5,g = 0);
matlab中的等效语法是什么?
可能重复:
Matlab中的默认参数
我在Matlab,test1和test2中有两个函数,如下所示.
function [C,D] = test1(A,B)
A = 50;
B = 20;
C = A + B;
D = A - B;
end
Run Code Online (Sandbox Code Playgroud)
和
function test2
C = 1000;
D = 500;
[A,B] = test1(C,D);
display(A)
display(B)
end
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是在函数test1中为A和B设置默认值,但也能够从函数test2等另一个函数传递函数test1不同的值.因此默认情况下,在函数test1中将A和B设置为50和20,但是函数test2能够用1000和500替换它们,并获得等效的C和D结果(在1000和500的情况下,得到结果)分别为C和D的1500和500)
我怎样才能做到这一点?任何帮助将不胜感激.谢谢