想要使用向量作为函数的参数,而不必分离其元素

Tom*_*ola 5 matlab function parameter-passing

如果我使用:func(1,2,3,4,5)调用matlab函数, 它可以完美地工作.

但如果我这样做: a = [1,2,3,4,5] %(a [1; 2; 3; 4; 5]给出相同的结果)

然后:

FUNC(a)中

给我:

??? 错误==> func at 11没有足够的输入参数.

func.m中的第11行是:

错误(nargchk(5,6,nargin));

我注意到这完美地运作:

FUNC(一(1),(2),(3),(4),(5))

如何使用向量'a'作为函数的参数?我有另一个函数otherfunc(b)返回一个,并希望将其输出用作这个func(otherfunc(b))的参数.

mis*_*ite 5

逗号分隔列表 (CSL)可以作为参数列表传递给函数,

所以你需要的是一个1,2,3,4,5从数组构造的CSL .

它可以使用像这样的单元格数组生成:

a=[1,2,3,4,5];
c = num2cell(a);
func(c{:});
Run Code Online (Sandbox Code Playgroud)


小智 0

只需让函数接受一个参数即可。

function result = func(a)
    if ~isvector(a)
        error('Input must be a vector')
    end
end
Run Code Online (Sandbox Code Playgroud)