我想在 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,但是我可以绘制它吗?
最佳答案
而不是
z = [xx.^2-1;-yy];
分别尝试每个组件:
z1 = [xx.^2-1];
z2 = [-yy];
[dx,dy] = gradient(z1,.3,.3);
contour(x,y,z1)
%etc.
如果您确实希望它们位于同一个图中,请再次使用hold on
。
关于matlab - 绘制 MATLAB 中矩阵函数的梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14086526/