为什么我不能在matlab中绘制这个函数?我的代码出了什么问题?

时间:2015-03-23 23:13:06

标签: matlab function plot

我只想绘制函数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);

这是为什么?任何帮助将不胜感激!提前谢谢!

1 个答案:

答案 0 :(得分:2)

您可能打算使用逐点乘法(.*)而不是矩阵乘法(*)。即而不是x*sin(20*y),您应该使用x.*sin(20*y)等。这将使每个元素的数组x的每个元素多出来。数组sin(20*y),这可能是期望的行为。