Matlab将一组单元导入到Tecplot中查看

复制代码
function ToTecplot3D(p,t,Usum,filename)

% --------- p should be 3*N or N*3 ----------------------------
% --------- T should be 4*N or N*4 or 8*N or N*8----------------------------
% --------- U should be 1*N or 1*N or 0 -----------------------
% --------- filename should be as 'xxx.txt' or 'xxx' ----------


if size(p,1)==3
    flag_p=1;
elseif size(p,2)==3
    p = p';
else
    msgbox('坐标p应该是3×N,未输出文件','错误')
    return
end

if size(t,1)==8 ||  size(t,1)==4
   flag_t = 1;
elseif size(t,2)==8  ||  size(t,2)==4
    t = t';
else 
    msgbox('单元t应该是4×N 或 8×N,未输出文件','错误')
    return
end

if Usum ==0
    Usum = ones(1,size(p,2));
elseif size(Usum,1)==1
   flag_t = 1;
elseif size(Usum,2)==1 
    Usum = Usum';
else 
    msgbox('位移U应该是1×N,未输出文件','错误')
    return
end

if ~ismember('.',filename)
    filename = [filename,'.txt'];
end
    

fid=fopen(filename,'w');
fprintf(fid,'TITLE = "Example: Xdd1997 Data"\n');
fprintf(fid,'VARIABLES = "X", "Y","Z","Displacement"\n ');
% lineseg, tringle, quadrilateral tetrahedron, or brick
if size(t,1) == 4
    fprintf(fid,'ZONE  N =  %d E =    %d     ET = tetrahedron F=FEPOINT\n',size(p,2),size(t,2));
else
    fprintf(fid,'ZONE  N =  %d E =    %d     ET = Brick F=FEPOINT\n',size(p,2),size(t,2));
end
CD_results=[p;Usum];
fprintf(fid,'%16.9f    %16.9f    %16.9f    %16.9f\n',CD_results);
if size(t,1) == 4
    fprintf(fid,'%d    %d    %d    %d\n',t);
else
    fprintf(fid,'%d    %d    %d    %d    %d    %d    %d    %d\n',t);
end
fclose(fid);
disp([filename,' 文件输出成功'])
View Code
复制代码

 

posted @   xdd1997  阅读(178)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示