wangfusen.cool 发表于 2008-8-13 11:14

如何只画出三维函数的部分图像

z=x^2+y;
要求只画出x<1,y<1的部分?
请指教,谢谢!

sigma665 发表于 2008-8-13 14:09

回复 楼主 wangfusen.cool 的帖子

限定坐标轴的范围

wangfusen.cool 发表于 2008-8-13 15:46

能否把代码写上?
x=0:0.1:10;
y=x;
=meshgrid(x,y);
Z=X^2+Y;
mesh(.....)

messenger 发表于 2008-8-13 16:04

把x改成x=-10:0.1:1; 不就行了吗?



原帖由 wangfusen.cool 于 2008-8-13 15:46 发表 http://www.chinavib.com/forum/images/common/back.gif
能否把代码写上?
x=0:0.1:10;
y=x;
=meshgrid(x,y);
Z=X^2+Y;
mesh(.....)

wangfusen.cool 发表于 2008-8-13 16:07

我的意思是,如果要求只画出函数的部分图像,如何用代码实现。
比如只画出Z=X^2+Y在X+Y<1区域的图像。
在mesh(....)命令中,如何实现?

messenger 发表于 2008-8-13 16:24

实现不了,mesh没这个功能

原帖由 wangfusen.cool 于 2008-8-13 16:07 发表 http://www.chinavib.com/forum/images/common/back.gif
我的意思是,如果要求只画出函数的部分图像,如何用代码实现。
比如只画出Z=X^2+Y在X+Y

sigma665 发表于 2008-8-14 12:38

试试这个

n=100;
x=linspace(-10,10,n);
y=x;
=meshgrid(x,y);

for i=1:n
for j=1:n
if X(i,j)>-Y(i,j)+1
X(i,j)=0;
Y(i,j)=0;
end
end
end

Z=X.^2+Y;

mesh(X,Y,Z)


应该可以

wangfusen.cool 发表于 2008-8-14 16:53

回复 7楼 sigma665 的帖子

=meshgrid([-10:0.1:10],[-10:0.1:10]);
t=(X+Y<1);
Z=t .*(X.^2+Y);
mesh(X,Y,Z);
这样可以么?

[ 本帖最后由 sigma665 于 2008-8-15 09:50 编辑 ]

sigma665 发表于 2008-8-14 17:22

回复 8楼 wangfusen.cool 的帖子

可以

wangfusen.cool 发表于 2008-8-14 20:46

但是,这两者的图像是不一样的。

ch_j1985 发表于 2008-8-14 21:44

回复 10楼 wangfusen.cool 的帖子

LZ可以把图贴上来看看

sigma665 发表于 2008-8-15 09:55

程序我稍微改了下

X.^2

图基本没什么差别

wangfusen.cool 发表于 2008-8-15 20:58

Thank you!

wangfusen.cool 发表于 2008-8-15 21:02

能否把改动后的代码发给我?

sigma665 发表于 2008-8-15 21:58

回复 14楼 wangfusen.cool 的帖子

见7 8 楼
页: [1] 2
查看完整版本: 如何只画出三维函数的部分图像