我只想绘制函数h(x,y)=(xsin(20y)+ ysin(20x))^ 2cosh(sin(10x)x)+(xcos(10y)-ysin(10x))^ 2cosh(COS(20Y)y)的 我有代码
clear;
close all;
h=inline('(x*sin(20*y)+y*sin(20*x)).^2*cosh(sin(10*x)*x)+(x*cos(10*y)-y*sin(10*x)).^2*cosh(cos(20*y)*y)','x','y');
x=-3:0.01:3;
y=-3:0.01:3;
for i=1:length(x)
z(:,i)=h(x(i),y);
end
figure(1);
mesh(x,y,z);
xlabel('x','fontsize',14);
ylabel('y','fontsize',14);
zlabel('h(x,y)','fontsize',14);
为什么它总是给出回复:
使用inlineeval时出错(第14行) 内联表达式错误==> (X * SIN(20 * Y)+ Y * SIN(20 * X))^ 2 * COSH(SIN(10 * X)的 X)+(X COS(10 * Y) - Y * SIN(10 * X))。^ 2 * COSH(COS(20 * Y)* Y) 内部矩阵尺寸必须一致。
inline / subsref错误(第23行) INLINE_OUT_ = inlineeval(INLINE_INPUTS_,INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);
hw7_2中的错误(第8行) Z(:,1)= H(X(I)中,y);
这是为什么?任何帮助将不胜感激!提前谢谢!
答案 0 :(得分:2)
您可能打算使用逐点乘法(.*
)而不是矩阵乘法(*
)。即而不是x*sin(20*y)
,您应该使用x.*sin(20*y)
等。这将使每个元素的数组x
的每个元素多出来。数组sin(20*y)
,这可能是期望的行为。