加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab数据导出为Tecplot格式

(2013-09-25 16:53:06)
分类: 技术相关
遇到这个问题时,没有看到太好的方便的解决办法。

之后采用两种方法:

1. 使用excel中转导出。

matlab数据可以轻松地写入xls文件中,但是数据大小有限制,xls限制在65536,xlsx也有限制,但未测试。

注意只能写入最多3竖(?),然后识别其中x和两个y,如果大量的数据貌似不可行。

使用tecplot 的 dataLoader,导入时有向导,按照一步步执行即可。

2. 使用matlab写tecplot的data文件。

这种方式受到的限制较少,在需要经常处理时推荐使用。

tecplot的数据文件格式:
TITLE = "Example: Variable and Connectivity List Sharing"
VARIABLES = "X", "Y", "P"
ZONE T="P_1", N=6, E=4, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
-1.0 0.0 100
0.0 0.0 125
1.0 0.0 150
-0.5 0.8 150
0.5 0.8 175
0.0 1.6 200
1 2 4
2 5 4
3 5 2
5 6 4
ZONE T="P_2", N=6, E=4, DATAPACKING=POINT, ZONETYPE=FETRIANGLE, VARSHARELIST= ([1, 2]=1), CONNECTIVITYSHAREZONE = 1
110
135
160
165
185
200
ZONE T="P_3", N=6, E=4, DATAPACKING=POINT, ZONETYPE=FETRIANGLE, VARSHARELIST= ([1, 2]=1), CONNECTIVITYSHAREZONE = 1
120 145 180 175 195 200
 

一段简单的matlab程序:
Nx=length(time);
str = 'compare_50_T_S.dat';
fid1=fopen(str,'w+');
fprintf(fid1,'VARIABLES = "Time(s)" "Temperature(K)"\n');
fprintf(fid1,'ZONE T = "  1 " F=POINT, I = %d \n',Nx);
for ab = 1:1:Nx
        fprintf(fid1,'%g  %g\n',time(ab),Simulation(ab));
end
fprintf(fid1,'ZONE T = "  1 " F=POINT, I = %d \n',Nx);
for ab = 1:1:Nx
        fprintf(fid1,'%g  %g\n',time(ab),Experiment(ab));
end

fclose(fid1);

具体数据格式还需要进一步研究,关于tecplot还会有后续文章。

写出data文件就可以用tecplot的dataLoader去导入了,注意选择tecplot自己格式的loader。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有