2个变量在2个不同区间的Matlab函数

2个变量在2个不同区间的Matlab函数,matlab,Matlab,这个代码有什么问题?没有间隔,只有一个Z函数可以完美地工作,但我不能让它工作。 请帮忙 X=[0:0.01:1] Y=[0:0.08:8] [X,Y] = meshgrid(X,Y) if X-0.08*Y <0.2 Z=1-(10*(X-0.08*Y)-1).^2 else Z=X*Y; end mesh(X,Y,Z); title('a mesh plot of a function of two variables'); xlabel('x'); ylabel('y');

这个代码有什么问题?没有间隔,只有一个Z函数可以完美地工作,但我不能让它工作。 请帮忙

X=[0:0.01:1]
Y=[0:0.08:8]

[X,Y] = meshgrid(X,Y)
if X-0.08*Y <0.2
Z=1-(10*(X-0.08*Y)-1).^2
else
    Z=X*Y;
end

mesh(X,Y,Z);
title('a mesh plot of a function of two variables');
xlabel('x'); ylabel('y'); zlabel('z');
X=[0:0.01:1]
Y=[0:0.08:8]
[X,Y]=网格网格(X,Y)

如果X-0.08*Y你忘了放点。。。你应该考虑点乘法。最重要的是,您应该将其添加到for循环(简单解决方案)中。还有另一种解决方案,代码行更少

X-0.08*Y <0.2

X-0.08*Y试着更像Matlab,而不是使用循环

X=[0:0.01:1];
Y=[0:0.08:8];

[X,Y] = meshgrid(X,Y);

% Your else statement
Z=X*Y;

% The if-portion
[i,j]=find(X-0.08*Y <0.2);
Z(i,j)=1-(10*(X(i,j)-0.08*Y(i,j))-1).^2;

mesh(X,Y,Z);
title('a mesh plot of a function of two variables');
xlabel('x'); ylabel('y'); zlabel('z');
X=[0:0.01:1];
Y=[0:0.08:8];
[X,Y]=网格网格(X,Y);
%你的else声明
Z=X*Y;
%if部分

[i,j]=find(X-0.08*Y)感谢您的输入。但是X*Y不会给出与X*Y相同的结果,考虑到if语句,我认为他/她不想做矩阵乘法。是的。我不确定需要什么,所以我按原样离开了。
X=[0:0.01:1];
Y=[0:0.08:8];

[X,Y] = meshgrid(X,Y);

% Your else statement
Z=X*Y;

% The if-portion
[i,j]=find(X-0.08*Y <0.2);
Z(i,j)=1-(10*(X(i,j)-0.08*Y(i,j))-1).^2;

mesh(X,Y,Z);
title('a mesh plot of a function of two variables');
xlabel('x'); ylabel('y'); zlabel('z');