我想编写一个内联函数,它接受两个参数,其中一个参数是一个向量.
>>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)
如何让第二个参数接受一个向量.
如上所述,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)