多个区域
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 清空文件内容
tecFilName = "ZT_Assemb.dat";
fid = fopen(tecFilName,'w');
fclose(fid);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 清空文件内容
filName = "C:\Users\xdd\Downloads\Stage1.cdb";
FEM = ReadCDBFile(filName);
p = FEM.node(:,4:6);
p(:,3) = p(:,3)-600;
t = FEM.H8(:,12:19);
Matrix = [];
ToTecplot3D_Matrix(p,t,Matrix,tecFilName)
filName = "C:\Users\xdd\Downloads\Stage2.cdb";
FEM = ReadCDBFile(filName);
p = FEM.node(:,4:6);
p(:,3) = p(:,3)+600;
t = FEM.H8(:,12:19);
Matrix = [];
ToTecplot3D_Matrix(p,t,Matrix,tecFilName)
ToTecplot3D_Matrix.m文件
function ToTecplot3D_Matrix(p,t,Matrix,filename)
% ## Input:
% p:node coord, N*3
% t:element, N*4 or N*8
% Matrix:node result, N*any or []
% filename: 'xxx.dat'
%
% ## Example:
% tecFilName = "ZT_Assemb.dat";
% fid = fopen(tecFilName,'w');
% fclose(fid);
%
% filName = "C:\Users\xdd\Downloads\Stage1.cdb";
% FEM = ReadCDBFile(filName);
% p = FEM.node(:,4:6);
% t = FEM.H8(:,12:19);
% Matrix = [];
% ToTecplot3D_Matrix(p,t,Matrix,tecFilName)
%
% filName = "C:\Users\xdd\Downloads\Stage2.cdb";
% FEM = ReadCDBFile(filName);
% p = FEM.node(:,4:6);
% t = FEM.H8(:,12:19);
% Matrix = [];
% ToTecplot3D_Matrix(p,t,Matrix,tecFilName)
% ## End
%%%%%%%%%%%%%%%%%%%%
if isempty(Matrix)
Matrix = zeros(size(p,1),1);
end
fid=fopen(filename,'a');
fprintf(fid,'TITLE = "Example: Xdd1997 Data"\n');
item_N = size(Matrix,2);
title = 'VARIABLES = "X", "Y","Z",';
format = '%16.9f %16.9f %16.9f ';
for ii = 1:item_N
title = [title,'"','U',num2str(ii),'"',','];
format = [format,'%16.9f '];
if ii == item_N
title = [title,' \n'];
format = [format,' \n'];
end
end
fprintf(fid,title);
%%%%%%%%%%%%%%%%%%%%
CD_results=p;
for ii = 1:item_N
CD_results=[CD_results, Matrix(:,ii)];
end
% lineseg, tringle, quadrilateral tetrahedron, or brick
if size(t,2) == 4
fprintf(fid,'ZONE N = %d E = %d ET = tetrahedron F=FEPOINT\n',size(p,1),size(t,1));
elseif size(t,2) == 8
fprintf(fid,'ZONE N = %d E = %d ET = Brick F=FEPOINT\n',size(p,1),size(t,1));
else
error('')
end
% node
fprintf(fid,format,CD_results');
% element
if size(t,2) == 4
fprintf(fid,'%10d %10d %10d %10d\n',t');
elseif size(t,2) == 8
fprintf(fid,'%10d %10d %10d %10d %10d %10d %10d %10d\n',t');
end
fclose(fid);
fprintf('%s 已经输出完毕\n',filename);