0

我想在 matlab 中绘制这个函数: f(x,y) = (x²+y²)^0.25 * [sin²(50(x²+y²)^0.1) + 1.0]; 所以这是我写的:

>> 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 回答