相关疑难解决方法(0)

如何在Matlab中设置函数参数的默认值?

是否可以在Matlab中使用默认参数?例如,这里:

function wave(a, b, n, k, T, f, flag, fTrue=inline('0'))
Run Code Online (Sandbox Code Playgroud)

我想让真正的解决方案成为wave函数的可选参数.如果有可能,任何人都可以证明这样做的正确方法吗?目前,我正在尝试上面发布的内容,我得到:

??? Error: File: wave.m Line: 1 Column: 37
The expression to the left of the equals sign is not a valid target for an assignment.
Run Code Online (Sandbox Code Playgroud)

matlab arguments default

120
推荐指数
7
解决办法
10万
查看次数

如何在MATLAB中处理函数参数的名称/值对

我有一个函数,它将可选参数作为名称/值对.

function example(varargin)
% Lots of set up stuff
vargs = varargin;
nargs = length(vargs);
names = vargs(1:2:nargs);
values = vargs(2:2:nargs);

validnames = {'foo', 'bar', 'baz'};    
for name = names
   validatestring(name{:}, validnames);
end

% Do something ...
foo = strmatch('foo', names);
disp(values(foo))
end

example('foo', 1:10, 'bar', 'qwerty')
Run Code Online (Sandbox Code Playgroud)

似乎在提取适当的值时需要付出很多努力(并且它仍然不是特别强大的再次严格指定的输入).有没有更好的方法来处理这些名称/值对?是否有MATLAB附带的辅助函数可以提供帮助?

matlab arguments function name-value function-parameter

65
推荐指数
6
解决办法
4万
查看次数

Matlab相当于Python的"无"

Matlab中是否有一个与Nonepython 大致相同的关键字?

我试图用它来标记函数的可选参数.我正在翻译以下Python代码

def f(x,y=None):
    if y == None:
        return g(x)
    else:
        return h(x,y)
Run Code Online (Sandbox Code Playgroud)

进入Matlab

function rtrn = f(x,y)
    if y == []:
        rtrn = g(x);
    else
        rtrn = h(x,y);
    end;
end
Run Code Online (Sandbox Code Playgroud)

正如您目前所看到的,我正在使用[]as None.有一个更好的方法吗?

python matlab

8
推荐指数
3
解决办法
9796
查看次数