2

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.

両方のサイズを一致させる方法がわかりません。y1x100 マトリックスとz200x100 です。それらを一致さyせるには、1x200 または 100x100 にする必要がありますzが、それをプロットすることはできますか?

4

1 に答える 1

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本当に同じプロットでそれらが必要な場合は、もう一度使用してください。

于 2012-12-30T07:30:01.240 に答える