fanzhenjie 发表于 2008-8-31 23:38

如何实现这个控制程序呢

我想要提取按X扫描,提取出所有坐标点的三维坐标,代码如下:
for x=linspace(-2,5,100);
    for y=linspace(-3,4,200);
      z=x.^2+y.^2;
      xyz=';
    end
end
save fan.xls xyz -ascii;
发现结果只有:5 4 41,不知道为什么别的数没有提取出来呀,我用C语言很容易就提出来了,一个二重循环,可是MATLAB为什么就提取不出来呢?当X取一个值时,就对应着两百个Y和Z,然后X递增,再对应着两百个Y和Z,不知道为什么不对呢,大家帮我想想呀!不甚感激!

sogooda 发表于 2008-9-1 08:41

你现在的程序逻辑有问题,xyz只记录下了最后一个循环结果,当然和你想象的不一样。

fanzhenjie 发表于 2008-9-1 16:56

回复 沙发 sogooda 的帖子

你能帮我想想怎么记录全部数据吗?谢谢呀!我想不出如何控制!

sigma665 发表于 2008-9-1 18:33

每对应一个x就有一串y z
然后再放入一个矩阵里,不适合

科技在线 发表于 2008-9-1 18:39

matalab是以矩阵为基的
而你输出的部分很可能只是矩阵的一行
也就是说在你取一个x值的时候,可能有一堆Y、Z值让你随机的选取
个人意见,请不要拍砖

wwbeyondww 发表于 2008-9-1 18:39

1.这里面不需要用循环;
2. x=linspace(-2,5,100);
   y=linspace(-3,4,200);
=meshgrid(x,y);
Z=X.^2+Y.^2;
abc=);reshape(Y,1,[]);reshape(Z,1,[])];

wwbeyondww 发表于 2008-9-1 18:45

晕倒,前面不是有这个帖子了么?

fanzhenjie 发表于 2008-9-2 07:39

回复 7楼 wwbeyondww 的帖子

不是呀,前面大家讨论的结果,我发现提取的坐标,只是把把X分成了一百个点,Y分面了两百个点,而没有对于X扫描提取!
提取的点只是其中一部分!

fanzhenjie 发表于 2008-9-2 08:10

回复 6楼 wwbeyondww 的帖子

谢谢楼上!真的很感谢你!对了,假如这个曲面,我用一个圆柱如:(z-5).^2+y.^2=25去截,想提取被截取的那部分的三维坐标点,楼主能帮我想想怎么提取吗?谢谢!我提取出来后NaN始终在里面,我按照你的意思写的代码如下,你看对吗:
x=linspace(-2,5,100);
y=linspace(-3,4,200);
=meshgrid(x,y);
Z=X.^2+Y.^2;
ii=find((Z-5).^2+Y.^2>25);
Z(ii)=NaN;Y(ii)=NaN;X(ii)=NaN;
abc=);reshape(Y,1,[]);reshape(Z,1,[])]';
save fan.xls abc -ascii;
你帮我看看,这样提取对吗?我感觉应该对,但提取出来后,怎么才能删除掉没有用的NaN呢!

[ 本帖最后由 fanzhenjie 于 2008-9-2 08:14 编辑 ]

sigma665 发表于 2008-9-2 13:31

回复 9楼 fanzhenjie 的帖子

我很好奇
你提取出来的那也是一个方方正正的矩阵
但是,圆形怎么可能会方呢
把圆形放如方的矩阵里?

fanzhenjie 发表于 2008-9-2 17:35

回复 10楼 sigma665 的帖子

我意思就是说,假如我得到一个曲面,再用一个圆柱去截它,只要提取出来被圆柱包围部份的曲面的三维坐标点,楼主能帮我想想怎么提取吗?我提取出来后里面的NaN怎么才能删除呀?

sigma665 发表于 2008-9-2 17:45

回复 11楼 fanzhenjie 的帖子

Z(ii)=[];Y(ii)=[];X(ii)=[];
这样试试

fanzhenjie 发表于 2008-9-2 22:44

回复 12楼 sigma665 的帖子

用[]确实删除了没有用的NAN,但其实我有一个画图的命令在里面,就不能画图了,错误提示的破坏了矩阵的维数,如果我用NAN就能画出图来,但提取出来的点吧,里面有NAN,别的点都是我想要的,用[]就只提取了我最需要的点,可是图就不能画了!呵呵,能不能有一个更好的办法呢?

messenger 发表于 2008-9-2 22:58

那你就把程序复制一下,分成两个程序,一个程序用来画图,一个程序用来提取点:lol

fanzhenjie 发表于 2008-9-2 23:45

回复 14楼 messenger 的帖子

好主意,呵呵!
页: [1]
查看完整版本: 如何实现这个控制程序呢