我想在MATLAB中绘制以下函数的渐变。
g(x,y) = [(x^2)-1; -y]
我的代码是:
x = linspace(-3,3);
y = linspace(-3,3);
[xx, yy] = meshgrid(x,y);
z = [xx.^2-1;-yy];
[dx,dy] = gradient(z,.3,.3);
contour(x,y,z)
hold on
quiver(x,y,dx,dy)
但我刚收到这个错误:
The size of Y must match the size of Z or the number of rows
of Z.
我不知道如何才能使两者的大小相符。 y
是1x100矩阵,z
是200x100。为了匹配它们,我需要y
为1x200或z
为100x100,但我能够将其绘制出来吗?
答案 0 :(得分:2)
而不是
z = [xx.^2-1;-yy];
分别尝试每个组件:
z1 = [xx.^2-1];
z2 = [-yy];
[dx,dy] = gradient(z1,.3,.3);
contour(x,y,z1)
%etc.
如果您真的希望它们出现在同一个地块中,请再次使用hold on
。