【问题标题】:Why I can't plot this function in matlab? What's wrong with my code?为什么我不能在 matlab 中绘制这个函数?我的代码有什么问题?
【发布时间】:2015-03-23 23:13:06
【问题描述】:

我只想绘制函数 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)+(xcos(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(:,i)=h(x(i),y);

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

【问题讨论】:

  • 错误消息说明了一切,Inner matrix dimensions must agree.。 Matlab 错误信息非常有用,请务必阅读!

标签: matlab function plot


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2022-06-10
    相关资源
    最近更新 更多