我想用Matlab画一分段函数的图像,提示z应该是一个矩阵,大神帮我看看哪里出问题了,我是初学者,谢谢

2024-12-02 23:26:08
推荐回答(3个)
回答(1):

可以运枣租局行的。
a=2;
b=2;
clf;
x=-a:0.2:a;
y=-b:0.2:b;
for i=1:length(y)
for j=1:length(x)
if x(j)+y(i)>1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j));
elseif x(j)+y(i)<=-1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j));
else
z(i,j)=0.7575*exp(-y(i)^2-6.*x(j)^2);
end
end
end
axis([-a,a,-b,b,min(min(z)),max(max(z))]);
colormap(flipud(winter));surf(x,y,z);

你凳让只型缓输入错误一处,改了就好了。
就在y的取值上。

回答(2):

你的y是不是定义错了,y=-b,0.2,b;,导致y只是一个数而不是数组,所以z最后是个一维向量

回答(3):

告诉你答案你会吐血的= =;
你渗烂错在 x=-a:0.2:a;y=-b:0.2:b;
打错符号灶滑了。。。。隐喊腊