赌场送彩金35|临海赌场看场子
查看: 1235|回复: 18|关注: 0
打印 上一主题 下一主题

[已解决] 请教大佬,已知数据存入Excel中,用matlab怎么画出三维图??

[复制链接]

新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
数据?#38382;?#20855;体如下:

截面高度        长度1        长度2        长度3        长度4        长度5        长度6        长度7        长度8        长度9        长度10        长度11        长度12
      0       40     44        50      40      40     42     40     40        42       40      40       40
      1       40     42        43      44      40     40      40    40        41       41       42      40
      2       41     42        40      40      40      41     42    40        40       40       40      40
      3       42    40        40       40      40      40     40     40       40        40       40      40
      4       40     40       40       40      40     40      40     40       40       40       40      40
      5      41      42       42       43       41     41      42     41       40       40      40      40
      6      40      40       40       40       40      40     40     40       40       40      40      40
      7      41      42       43       41       42      40      40    40        40       40      40      40
      8      40      45      45        41       40      40      40    40        40        40      40      40
      9      41      42       41       42        41     42      40     40       40        40       40      40
    10      42      42       40       40        40      40      50      40      45       40       40       40

画出来类似圆柱体 但不是正规的圆柱体  下文中称为类圆柱体。
界面高度为类圆柱体每隔一段高度横截面所在高度。
长度为所在横截面?#31995;?#20013;心的长度


MATLAB 基础讨论
版块优秀回答者

中级

552 麦片

财富积分


5001500


72

主题

1443

帖子

104

最佳答案
  • 关注者: 72
2#
发表于 2019-4-17 10:01:04 | 只看该作者
本帖最后由 meatball1982 于 2019-4-17 10:06 编辑

每一层的各一根线可以通过plot3来画。
线的端点,可以通过线的长度和角度用极坐标转换到直角坐标来得到。
注意用hold on


另,你的两根线之间的弧是怎么定义的。

新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
3#
 楼主| 发表于 2019-4-17 14:16:43 | 只看该作者
meatball1982 发表于 2019-4-17 10:01
每一层的各一根线可以通过plot3来画。
线的端点,可以通过线的长度和角度用极坐标转换到直角坐标来得到。
...

他要求就是可以用光滑曲线连接起来,然后看这个圆柱体有没有变形,数据?#36824;?#30340;话应该要用?#35762;?#20540;把。您好,我想再问一下,您这个这样画了只有截面和侧面就只能点对点的连接起来?#21069;桑?/td>

新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
4#
 楼主| 发表于 2019-4-17 14:29:47 | 只看该作者
meatball1982 发表于 2019-4-17 10:01
每一层的各一根线可以通过plot3来画。
线的端点,可以通过线的长度和角度用极坐标转换到直角坐标来得到。
...

您方便把代码发给我看一下吗?

MATLAB 基础讨论
版块优秀回答者

中级

552 麦片

财富积分


5001500


72

主题

1443

帖子

104

最佳答案
  • 关注者: 72
5#
发表于 2019-4-17 20:23:18 | 只看该作者
存在么 发表于 2019-4-17 14:29
您方便把代码发给我看一下吗?

方便,但现在不给,
如何画,基本思路已经知道你了。你尝试画一下,有问题,放上来,一起讨论着解决。

外面那一层是根据得到的线外端的点生成的网格数据,通过surf画出来 。
你可以尝试先画一个圆柱体,看看数据长什么样。再把你的数据放进去画。

也是画完了hold on


新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
6#
 楼主| 发表于 2019-4-18 08:40:24 | 只看该作者
meatball1982 发表于 2019-4-17 20:23
方便,但现在不给,
如何画,基本思路已经知道你了。你尝试画一下,有问题,放上来,一起讨论着解决。

我是计算机专业的,我在做一个系统得到数据  他需要用图展示,之前没有出来接触过Matlab,所以谢谢你提供的思路,我自?#21512;?#21435;试试。谢谢你!

新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
7#
 楼主| 发表于 2019-4-18 08:52:16 | 只看该作者
存在么 发表于 2019-4-18 08:40
我是计算机专业的,我在做一个系统得到数据  他需要用图展示,之前没有出来接触过Matlab,所以谢谢你提供 ...

我想在请教你个问题,在知道你的思?#20998;?#21069;,我做的根据角度把这些点三维坐标求出来,然后画出了三维散点图,之后再根据散点图拟合,你觉得相比这两种那个效果会好一点啊?

新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
8#
 楼主| 发表于 2019-4-18 09:14:06 | 只看该作者
meatball1982 发表于 2019-4-17 20:23
方便,但现在不给,
如何画,基本思路已经知道你了。你尝试画一下,有问题,放上来,一起讨论着解决。

我想在请教你个问题,在知道你的思?#20998;?#21069;,我做的根据角度把这些点三维坐标求出来,然后画出了三维散点图,之后再根据散点图拟合,你觉得相比这两种那个效果会好一点啊?

新手

7 麦片

财富积分


050


3

主题

14

帖子

0

最佳答案
9#
 楼主| 发表于 2019-4-18 09:44:50 | 只看该作者
meatball1982 发表于 2019-4-17 20:23
方便,但现在不给,
如何画,基本思路已经知道你了。你尝试画一下,有问题,放上来,一起讨论着解决。

为?#27573;?#20986;来他后面那一块不连接啊,
最后几行我写的这几句
scatter3(x,y,z,'.','b');
hold on,
[x1,y1,z1]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');
surf(X2,Y2,Z2);

MATLAB 基础讨论
版块优秀回答者

中级

552 麦片

财富积分


5001500


72

主题

1443

帖子

104

最佳答案
  • 关注者: 72
10#
发表于 2019-4-18 10:32:32 | 只看该作者
本帖最后由 meatball1982 于 2019-4-18 10:35 编辑
存在么 发表于 2019-4-18 09:44
为?#27573;?#20986;来他后面那一块不连接啊,
最后几行我写的这几句
scatter3(x,y,z,'.','b');

01.注意,程序中的。

  1. X=[X';X(:,1)']';
  2. Y=[Y';Y(:,1)']';
  3. Z=[Z';Z(:,1)']';
复制代码
是将两边连在一起,你可以想想。

02.你的思路?#37096;?#20197;,有关于拟合圆柱的工作。如果点很多,似乎拟合好一些。
我的感觉,你的半径差别不大,现在这种方式,基本就能体现圆柱的主要信息了。
最关键的,还是看你想?#24471;?#20160;么。



  1. clear all
  2. clc

  3. dat=[     0       40     44        50      40      40     42     40     40        42       40      40       40
  4.       1       40     42        43      44      40     40      40    40        41       41       42      40
  5.       2       41     42        40      40      40      41     42    40        40       40       40      40
  6.       3       42    40        40       40      40      40     40     40       40        40       40      40
  7.       4       40     40       40       40      40     40      40     40       40       40       40      40
  8.       5      41      42       42       43       41     41      42     41       40       40      40      40
  9.       6      40      40       40       40       40      40     40     40       40       40      40      40
  10.       7      41      42       43       41       42      40      40    40        40       40      40      40
  11.       8      40      45      45        41       40      40      40    40        40        40      40      40
  12.       9      41      42       41       42        41     42      40     40       40        40       40      40
  13.     10      42      42       40       40        40      40      50      40      45       40       40       40];


  14. hei=dat(:,1);
  15. R_mat= dat(:,2:end);

  16. n_lay=length(hei);
  17. n_len= length(R_mat(1,:));

  18. the = pi/6*[1:n_len];
  19. col_mm=jet(n_lay);
  20. hold on
  21. for i=1:n_lay
  22.     z=hei(i);
  23.     for j = 1 :n_len;
  24.         r=R_mat(i,j);
  25.         the = pi/6 * (j-1) ;
  26.         x = r*cos(the);
  27.         y = r*sin(the);
  28.         X(i,j)=x;
  29.         Y(i,j)=y;
  30.         Z(i,j)=z;
  31.         plot3([0 x],[0 y],[z z],'-','linewidth',2+0.1*i,'color',col_mm(i,:));
  32.     end
  33. end

  34. X=[X';X(:,1)']';
  35. Y=[Y';Y(:,1)']';
  36. Z=[Z';Z(:,1)']';

  37. h_su=surf(X,Y,Z)
  38. alpha(h_su,0.2)

  39. pbaspect([1 1 2])
  40. box on
  41. view(-5,12)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表
赌场送彩金35 曼联图片 港澳生肖时时彩 捕鱼大师无敌版 辽宁麻将技巧 沃尔夫斯堡对汉诺威 曼城vs沃特福德直播 澳洲幸运10开奖 湛蓝深海援彩金 大河彩票网 二八杠怎么玩