如何编写一个内联函数,它将在MATLAB中接受两个参数

Vin*_*nod 1 matlab inline

我想编写一个内联函数,它接受两个参数,其中一个参数是一个向量.

>>nCk = @(n,k)(nchoosek(n,k));
>>nCk(3,1:2)
Error using nchoosek (line 29)
The second input has to be a non-negative integer.
Run Code Online (Sandbox Code Playgroud)

如何让第二个参数接受一个向量.

Jon*_*nas 8

如上所述,nchoosek只允许第二个参数的整数输入.如果您确实想要创建内联函数,可以将循环折叠为调用arrayfun,但是:

nCk = @(n,kVec)arrayfun(@(k)nchoosek(n,k),kVec);
Run Code Online (Sandbox Code Playgroud)

并使用这样的:

nCk(5,0:5)

ans =

 1     5    10    10     5     1
Run Code Online (Sandbox Code Playgroud)