0

この関数を matlab でプロットしたい: f(x,y) = (x²+y²)^0.25 * [sin²(50(x²+y²)^0.1) + 1.0]; だからheres私が書いたもの:

>> x = -100 : 1 : 100; //where x varies
>> y = -100 : 1 : 100; //where y varies
>> A = (power(x, 2)+ power(y, 2));
>> B = 50 * A;
>> C = sin(power(B,0.1));
>> z = (power(A,0.25))*((power(C,2)+1)); 
??? Error using ==> mtimes
Inner matrix dimensions must agree.// how can i resolve this error??

ヘルプ!

4

1 に答える 1

0

*要素ごとの乗算 ( ) が必要なときに行列乗算 ( ) を使用しているため、このエラーが発生しています.*xそれが変更されても、とyがベクトルであるため、コードは不完全 です。おそらく、値の配列の関数を計算したいと思うでしょう。これは、 を使用して実行できますmeshgrid。詳細については、こちらをご覧ください。

x = -100 : 1 : 100;
y = -100 : 1 : 100;
[X,Y] = meshgrid(x,y);
A = (power(X, 2)+ power(Y, 2));
B = 50 * A;
C = sin(power(B,0.1));
z = (power(A,0.25)).*((power(C,2)+1));
surf(z)
xlabel('x')
ylabel('y')
zlabel('z')

一部を回転させると、図は次のようになります。

ここに画像の説明を入力

于 2013-06-12T19:20:27.017 に答える