24小时热门版块排行榜    

查看: 936  |  回复: 17
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 wuqingming2003 的 50 个金币
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wuqingming2003

木虫 (小有名气)

[交流] 【求助】如何做一个由三个点确定的切面的等高线?

本人是matlab新手,现得到一组数据(在附件中),是一个40*40*40的空间内的各个点的强度值,现在想做由(26,26,26)、(20,20,20)和(38,10,22)三个点确定的平面的等高线分布图,请问如何做?
请将程序写的详细一点,万分感谢!

[ Last edited by wuqingming2003 on 2009-10-14 at 09:41 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuqingming2003

木虫 (小有名气)

非常感谢你的回答,写的很详细,我明天试试看,再次感谢!
引用回帖:
Originally posted by hitzhang at 2009-10-14 19:16:



40*40*40的数组比较大,估计你的附件白贴了。

下面是一个例子,可供参考。


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

生成一个数据
>> [x y z]=meshgrid(1:40);
>> C=sin(( ...

3楼2009-10-14 22:14:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

hitzhang

木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
wuqingming2003(金币+20,VIP+0):非常感谢,辛苦了!明天试试看,如果可以成功,50个金币全部赠送。 10-14 22:05
nono2009(金币+2,VIP+0):谢谢专家!麻烦再看一下此问题的进展。 10-15 13:37
引用回帖:
Originally posted by wuqingming2003 at 2009-10-14 09:25:
本人是matlab新手,现得到一组数据(在附件中),是一个40*40*40的空间内的各个点的强度值,现在想做由(26,26,26)、(20,20,20)和(38,10,22)三个点确定的平面的等高线分布图,请问如何做?
请将程序写的详细一点, ...

40*40*40的数组比较大,估计你的附件白贴了。

下面是一个例子,可供参考。


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

生成一个数据
>> [x y z]=meshgrid(1:40);
>> C=sin((x.^2+y.^2+z)/20);

定义制定的斜面


1,三个点的坐标;
>> a=[20 20 20];
>> b=[26 26 26];
>> c=[38 10 22];

2,计算x-z平面与预制平面的夹角

>> der1=[0 1 0]; %x-z平面法相方向
>> der2=cross(b-a,c-a);%预制平面法向方向
>> der3=cross(der1,der2);%两平面交线方向
>> the=dot(der2,der1)/sqrt(sumsqr(der1)*sumsqr(der2));%两平面夹角


3,画出这两个平面,看看是不是落在那三个点上?

>> [xx zz]=meshgrid(-10:50);yy=ones(size(xx));
>> mesh(xx,yy,zz),hold on;hsp = mesh(xx,yy,zz);
>> rotate(hsp,der3,the*180/pi,[1 1 1])%旋转平面,如附件一
>> scatter3(20,20,20)
>> scatter3(26,26,26)
>> scatter3(38,10,22)


4,得到旋转后平面的数据
>> xd = get(hsp,'XData');
>> yd = get(hsp,'YData');
>> zd = get(hsp,'ZData');


5,画一下且过那三个点的等值线,如附件2

>> contourslice(x,y,z,C,xd,yd,zd)
>> hold on;
>> contourslice(x,y,z,C,[],1,[])
>> scatter3(20,20,20)
scatter3(26,26,26)
scatter3(38,10,22)

/////////////////////////////////////////////////////////////////////////////
2楼2009-10-14 19:16:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuqingming2003

木虫 (小有名气)

nono2009(金币+0,VIP+0):建议PM或引用回复该帖,以便别人及时知道你的message! 10-15 13:36
我用你说的方法试了一下,出现了点问题,我把程序写在下面,麻烦帮我看看哪里出错了,谢谢!
[path,fn]=uigetfile('*.txt','Open');
fp=fopen([fn,path],'r');
head=fscanf(fp,'%s',4);
data=fscanf(fp,'%f',[4,40*40*40]);
fclose(fp);
x=reshape(data(1,,[40,40,40]);
y=reshape(data(2,,[40,40,40]);
z=reshape(data(3,,[40,40,40]);
C=reshape(data(4,,[40,40,40]);
>> a=[20 20 20];
>> b=[26 26 26];
>> c=[38 10 22];
>> der1=[0 1 0]; %x-z平面法相方向
>> der2=cross(b-a,c-a);%预制平面法向方向
>> der3=cross(der1,der2);%两平面交线方向
>> the=dot(der2,der1)/sqrt(sumsqr(der1)*sumsqr(der2));%两平面夹角
>> [xx zz]=meshgrid(-10:50);yy=ones(size(xx));
>> mesh(xx,yy,zz),hold on;hsp = mesh(xx,yy,zz);
>> rotate(hsp,der3,the*180/pi,[1 1 1])%旋转平面
>> scatter3(20,20,20)
>> scatter3(26,26,26)
>> scatter3(38,10,22)
这样得到的结果中旋转后的平面并没有经过这三个点,如附件中的图所示
引用回帖:
Originally posted by hitzhang at 2009-10-14 19:16:



40*40*40的数组比较大,估计你的附件白贴了。

下面是一个例子,可供参考。


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

生成一个数据
>> [x y z]=meshgrid(1:40);
>> C=sin(( ...

4楼2009-10-15 12:12:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
kuhailangyu(金币+1,VIP+0):谢谢参与 10-15 16:01
wuqingming2003(金币+10,VIP+0):改成这个代码后,画的平面就经过三个点了 10-15 16:20
引用回帖:
Originally posted by wuqingming2003 at 2009-10-15 12:12:
我用你说的方法试了一下,出现了点问题,我把程序写在下面,麻烦帮我看看哪里出错了,谢谢!
[path,fn]=uigetfile('*.txt','Open');
fp=fopen([fn,path],'r');
head=fscanf(fp,'%s',4);
data=fscanf(fp,'%f', ...

呵呵,不好意思,代码贴错了。角度忘记求反余弦了,这样改

>> the=acos(dot(der2,der1)/sqrt(sumsqr(der1)*sumsqr(der2)));%两平面夹角
5楼2009-10-15 15:42:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 1uaZt2kAZj2S 2026-10-30 14/700 2026-11-01 07:01 by YXM1FDCSE8Bn
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 1uaZt2kAZj2S 2026-10-30 15/750 2026-11-01 06:53 by YXM1FDCSE8Bn
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 X5bHxOULxFqb 2026-10-30 17/850 2026-11-01 06:48 by YXM1FDCSE8Bn
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 X5bHxOULxFqb 2026-10-30 21/1050 2026-11-01 06:46 by YXM1FDCSE8Bn
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 xvJS1BYDxvBS 2026-10-31 8/400 2026-11-01 05:48 by YXM1FDCSE8Bn
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 xvJS1BYDxvBS 2026-10-31 8/400 2026-11-01 05:43 by YXM1FDCSE8Bn
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 05:41 by YXM1FDCSE8Bn
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 05:41 by YXM1FDCSE8Bn
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 3/150 2026-11-01 04:04 by YXM1FDCSE8Bn
[考研] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 1uaZt2kAZj2S 2026-10-31 7/350 2026-11-01 04:04 by YXM1FDCSE8Bn
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-31 8/400 2026-11-01 03:59 by YXM1FDCSE8Bn
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 03:56 by YXM1FDCSE8Bn
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 10/500 2026-11-01 03:51 by YXM1FDCSE8Bn
[论文投稿] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 X5bHxOULxFqb 2026-10-30 25/1250 2026-11-01 03:30 by YXM1FDCSE8Bn
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 5/250 2026-11-01 02:25 by YXM1FDCSE8Bn
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-31 4/200 2026-11-01 00:41 by YXM1FDCSE8Bn
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 X5bHxOULxFqb 2026-10-30 13/650 2026-10-31 17:12 by hKe7U1kad5Sg
[硕博家园] 越来越担心硕士毕业后没有竞争力了 +8 zuesli 2026-10-27 14/700 2026-10-30 22:44 by 好运连连公主
[基金申请] 论文的挂名怎么评判贡献?基金申请中,排名第一的挂名文章 +3 biily 2026-10-25 3/150 2026-10-30 18:33 by 旁观2020
[硕博家园] 申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请 +3 小小阿光 2026-10-27 3/150 2026-10-29 23:56 by 起风了的快乐
信息提示
请填处理意见