matlab矩阵转入tecplot,利用Tecplot导入MATLAB计算结果数据进行三维可视化

前言

对于(坐标,物理量)这类数据的可视化(云图)一直在探索,二维数据选择用matlab处理,因为matlab的imagesc函数可以根据数据值的大小用不同颜色来显示。但是对应的三维数据(x,y,z,物理量)的数据处理一直没找到合适的方式。多次搜索发现tecplot可以做,但是都没有详细的步骤,因此写这篇博文详细展示一下导入的过程。物理量可以多个,在添加变量处多添加就行。

准备工作

将数据存入Excel,按照x坐标、y坐标、z坐标、物理量排成四列,我使用的是Tecplot 360 EX2016 r2(为啥不更新?因为其他版本总是有问题,这个版本最听话……)

步骤如下:

1.导入data.xls(可能需要点两次导入)

2.选择 自定义

5f71a4e5b3f95637e02e12228c48b485.png

3.选择 custom模式

1efe40097b59be2ec13a20cf03e3fe7e.png

4.添加变量:包括 x,y,z,物理量

在add new variable栏写变量名,再选择数据类型,点击添加,就能成功添加一个变量

c87238d14775c346963238ffe9c2d79f.png

5.添加zone 定义数据范围(例如我导入的是Excel中从A1-D8000的数据),IMAX含义为网格数。

448f996b914f1d1cb1482c862a2a47de.png

6.点击完成

这样就能在tecplot处理数据了,具体的细节就是tecplot操作的问题,这里不再赘述。

另一种更便捷的方法

将数据导出成dat格式,并在前面增加说明,Tecplot就可以直接读取了。MATLAB导出代码如下:

filename=['address' num2str(l/Nout) '.dat'];

% address是储存位置,这里的num2str是为了在循环输出dat数据文件中使用,如果只有一个文件可以忽略

fid=fopen(filename,'wt');

fprintf(fid,'%s \n','variables= "x", "y", "z", "variable name"');

fprintf(fid,'%s \n','zone t="Frame " i=50,j=50,k=50,f=point');

%这里的ijk是三维方向xyz划分量

[m,n]=size(data);%data就是包含x,y,z和变量的数据矩阵

for i=1:1:m

for j=1:1:n

if j==n

fprintf(fid,'%g\n',data(i,j));

else

fprintf(fid,'%g\t',data(i,j));

end

end

end

fclose(fid);

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值