我一直在网上搜索几个早晨,什么都没发现,希望你能帮上忙。matlab常量匿名函数只返回一个值而不是数组
我有这样
f = @(x,y) [sin(2*pi*x).*cos(2*pi*y), cos(2*pi*x).*sin(2*pi*y)];
匿名函数,需要点的阵列上进行评估,像
x = 0:0.1:1;
y = 0:0.1:1;
w = f(x',y');
现在,在上面的例子中一切正常,结果w是11x2矩阵,每行有正确的值f(x(i),y(i))。 问题是当我改变我的功能,具有恒定的值:
f = @(x,y) [0, 1];
现在,即使是像以前一样阵列的投入,我只得到了一个1x2的阵列像W = [0,1]。当然我想要具有与之前相同的结构,即11×2矩阵。
我不知道为什么Matlab的是这样做的......
编辑1 对不起,我以为是我在原来的问题写了很清楚,但我看到你们中的一些要求,所以在这里是一个澄清:我想要的是再次有一个11x2矩阵,因为我正在用有11个元素的数组提供函数。 这意味着我期望在第一个例子中具有完全一样的输出,只需更改其中的值即可:具有11行和2列的矩阵,第一列中只有值0,第二列中只有值1,因为对于所有的x(i)和y(i)答案应该是向量[0,1]。 这意味着我期望有:
w = [0 1
0 1
0 1
...
0 1]
似乎很自然的我......
为什么你会想到'@(X,Y)[0,1]'返回enything别的,而是'[0,1] '????? – Shai
我已经更新了这个问题并提供了澄清 – Filo
我不知道为什么这是downvoted。我认为这对于一个有更多数学背景的人来说是一个完全合理的问题。 –