matlab三维矩阵_Matlab绘制三维表面模型说明

Matlab绘制三维表面模型说明

首先将excel表中的数据加载到matlab中

有两种较为简单的方法(可以直接读取excel,但是你只是要图的话没必要这么复杂,所以就不提这一种了,只说两种简单的方法)

①在matlab主页点击导入数据→选择你的数据文件→选中要用的数据,将数据类型改成数值矩阵,矩阵名称改为pointTab→点击导入所选内容,完成数据加载,此时在工作区可以看见我们导入的数据。

4b9ae5e007a1313a16913c38007b836e.png

7bd59ff790636203119fc918ef6f3682.png

7108d51d8e807dadb0480e2025869c40.png

2cb629132b16c39e5cbd186e3dbb5212.png

②打开excel表,选中需要导入的数据,复制→在matlab的工作区新建一个数值矩阵,命名为pointTab→双击打开这个矩阵,在变量区域粘贴刚才复制的数据即可。

cbf6ac649031dff3c6549d777fc3502e.png

8a75cacacc0aa9e2f93712b3cb4c995f.png

然后进行数据预处理

分析这个数据发现平面坐标是规则的,如下图所示:

01ab34c5082e2b31ccd21d3748e69be4.png

既然是规则的,那就好办了,不需要插值等一系列操作,直接把数据整理成符合mesh函数需要的格式即可。(mesh函数需要的数据是三个等大的矩阵,三个矩阵分别对应存储三维坐标X、Y、Z)

发现平面坐标的步长为25,则对应矩阵的行列计算如下:

x = pointTab(:,1)/25+1;

y = pointTab(:,2)/25+1;

即坐标值除以25再加一就是当前三维坐标分别在自己矩阵中对应的行列号,计算出行列号并将值存储进去即可,代码如下:

[r,~] = size(x);

for i = 1:1:r

    row = x(i);

    col = y(i);

    X(row,col) = pointTab(i,1);

    Y(row,col) = pointTab(i,2);

    Z(row,col) = pointTab(i,3);

end

绘制表面模型

代码如下:

surf(X,Y,Z);

后续优化操作可以在代码里简单写写,也可以在图形界面交互操作,不在赘述。效果图如下:

7c8413ac1c6a36adc1309cea42ca6b8a.png

另附完整代码如下:
%{本实例用于将一组简单三维离散点构建曲面模型并显示导入数据为n个点的三维坐标(n行3列的数值矩阵pointTab)显示成果为该导入数据经过整理生成的三维曲面模型by Mr.Chai%}rowTab = pointTab(:,1)/25+1; % 将x坐标换算成矩阵的行comTab = pointTab(:,2)/25+1; % 将y坐标换算成矩阵的列[r,~] = size(pointTab);      % 获取pointTab中点的个数for i = 1:1:r    row = rowTab(i); % 当前点对应的矩阵行号    col = comTab(i); % 当前点对应的矩阵列号    X(row,col) = pointTab(i,1); % 将当前点的x坐标写入X矩阵的row行,col列处    Y(row,col) = pointTab(i,2); % 将当前点的y坐标写入Y矩阵的row行,col列处    Z(row,col) = pointTab(i,3); % 将当前点的z坐标写入Z矩阵的row行,col列处end%绘制曲面figure(1);        % 新建一个图层surf(X,Y,Z);      % 绘制曲面模型shading interp;   % 去除表面模型的黑框线colormap(jet);    % 假彩色渲染colorbar;         % 显示色度条msgbox '恭喜你,你的代码运行完毕!';
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值