查找匿名函数的维数

Finding the dimensions of an anonymous function

我在 Octave/MATLAB 中有一个这样的函数:

A = @(x1, x2) [0 1; -1*x1 -0.9*x2^2; x1 3*x2];

而且我想求函数的维数。检查列数的一个选项是:

nargin(A)

在这种情况下给出 2。但是行呢?我知道有 3 行。但是当我检查尺寸时,我会得到:

size(A)
ans = 
   1   1

如何求函数A的行数?

nargin 不检查 列的数量 。它 returns 代替函数的输入参数的数量。

一种直接的方法是输入任何值,然后找到 size。即

>> size(A(0,0))

ans =
     3     2

如果有很多输入参数并且您想自动执行输入输入参数的过程,那么:

>> tmp = num2cell(zeros(nargin(A),1));
>> size(A(tmp{:}))

ans =
     3     2