# mat2tecplot

 Register Blogs Members List Search Today's Posts Mark Forums Read

 July 6, 2015, 04:53 #41 New Member   Oğuzhan Medet Join Date: Jul 2015 Posts: 3 Rep Power: 9 i need help about processing a test data in matlab. after processing matlab, i have to transfer it to tecplot. Who can help me?

 July 6, 2015, 18:23 #42 New Member   wen long Join Date: May 2012 Posts: 29 Rep Power: 12 I can if you describe your data and upload a mat file somewhere

 July 7, 2015, 01:15 #43 New Member   Oğuzhan Medet Join Date: Jul 2015 Posts: 3 Rep Power: 9 my data is 240*216 matrix. My task is to transform it to a form which tecplot can read and can plot a graph or can simulate it.

 July 7, 2015, 03:52 #44 New Member   wen long Join Date: May 2012 Posts: 29 Rep Power: 12 very easy, follow one of the 2D ij- examples in mat2tecplot

 July 7, 2015, 04:14 #45 New Member   Oğuzhan Medet Join Date: Jul 2015 Posts: 3 Rep Power: 9 can you send me the link?

 July 7, 2015, 22:49 #46 New Member   wen long Join Date: May 2012 Posts: 29 Rep Power: 12 Look at the first few posts of this thread

 July 21, 2015, 12:17 Problem with cell-centered variable #47 New Member   Victor Magri Join Date: Jul 2015 Posts: 2 Rep Power: 0 Dear friends, I'm trying to use mat2tecplot for writing cell centered variables through surfaces, but the binary file generated does not give me the expected answer. For example, consider the code: Code: ```tdata=[]; tdata.Nvar=5; tdata.vformat(1:tdata.Nvar) = 2; tdata.varnames={'x','y','z','T', 'P'}; tdata.surfaces(1).zonename='mysurface zone'; tdata.surfaces(1).x=[1,2,3;1,2,3;1,2,3]; %size 3x3 tdata.surfaces(1).y=[1,1,1;2,2,2;3,3,3]; %size 3x3 tdata.surfaces(1).order=3; tdata.surfaces(1).v=[]; tdata.surfaces(1).v(1,:,:)=[10,20;30 40]; tdata.surfaces(1).v(2,:,:)=[50,60;70 80]; tdata.surfaces(1).varloc=1; mat2tecplot(tdata,'mysurf2DT_xy_cellcenter.plt')``` If I open it on Tecplot Focus 2013R1 and go to File->Write Data File, the ASCII file generated is the following one: Code: ```TITLE = "tecplot data" VARIABLES = "x" "y" "z" "T" "P" ZONE T="mysurface zone" STRANDID=1, SOLUTIONTIME=0 I=3, J=3, K=1, ZONETYPE=Ordered DATAPACKING=BLOCK VARLOCATION=([3-5]=CELLCENTERED) DT=(DOUBLE DOUBLE DOUBLE DOUBLE DOUBLE ) 1.000000000E+000 1.000000000E+000 1.000000000E+000 2.000000000E+000 2.000000000E+000 2.000000000E+000 3.000000000E+000 3.000000000E+000 3.000000000E+000 1.000000000E+000 2.000000000E+000 3.000000000E+000 1.000000000E+000 2.000000000E+000 3.000000000E+000 1.000000000E+000 2.000000000E+000 3.000000000E+000 0.000000000E+000 0.000000000E+000 0.000000000E+000 0.000000000E+000 0.000000000E+000 0.000000000E+000 1.000000000E+001 3.000000000E+001 4.000000000E+001 0.000000000E+000 0.000000000E+000 0.000000000E+000``` In the last two lines, I was expecting to have: Code: ``` 1.000000000E+001 3.000000000E+001 2.000000000E+001 4.000000000E+001 5.000000000E+001 7.000000000E+001 6.000000000E+001 8.000000000E+001``` I tried to dig into mat2tecplot file but could not find the reason for this difference. Do you have any thought on that? I appreciate! I'm using the mat2tecplot version provided in the website: http://www.tecplot.com/blog/2014/07/...s-matlab-data/ Thank you so much for your help!

 July 21, 2015, 16:00 #48 New Member   wen long Join Date: May 2012 Posts: 29 Rep Power: 12 Pls see if the following works: tdata=[]; tdata.Nvar=5; tdata.vformat(1:tdata.Nvar) = 2; tdata.varnames={'x','y','z','T', 'P'}; tdata.surfaces(1).zonename='mysurface zone'; tdata.surfaces(1).x=[1,2,3;1,2,3;1,2,3]; %size 3x3 tdata.surfaces(1).y=[1,1,1;2,2,2;3,3,3]; %size 3x3 tdata.surfaces(1).z=[0,0;0,0] %size 2x2 tdata.surfaces(1).order=3; tdata.surfaces(1).v=[]; tdata.surfaces(1).v(1,:,: )=[10,20;30 40]; %size 2x2 tdata.surfaces(1).v(2,:, : )=[50,60;70 80]; %size 2x2 tdata.surfaces(1).varloc=1; mat2tecplot(tdata,'mysurf2DT_xy_cellcenter.plt')

 July 21, 2015, 21:58 Problem with cell-centered variable #49 New Member   Victor Magri Join Date: Jul 2015 Posts: 2 Rep Power: 0 Dear Wen Long, it gave exactly the same result as before. So, the problem is not with the variable "z". My opinion is that it is around the lines 9165-9185, which write the variables "P" and "T": Code: ```switch(iv) %by default matlab fwrite() writes array A[Imax,Jmax,Kmax] %with i=1:Imax, j=1:Jmax,k=1:Kmax and with i varying the fastest, %j the second and k the last %hence we do not have to have k,j,i nested loops as above case 1 surface_data_value=x_data(1:Imax-1,1:Jmax-1); case 2 surface_data_value=y_data(1:Imax-1,1:Jmax-1); case 3 surface_data_value=z_data(1:Imax-1,1:Jmax-1); otherwise surface_data_value=tdata.surfaces(isurf).v(iv-3,1:Imax-1,1:Jmax-1); end %also need to pad zeros to make sure it (only needed for ordered data) %occupies the same size as nodal %variables surface_data_value=reshape(surface_data_value,[1,(Imax-1)*(Jmax-1)]); surface_data_value=[surface_data_value zeros([1,Imax*Jmax-(Imax-1)*(Jmax-1)])]; fwrite(fid_out,surface_data_value,var_formatstr{iv});``` Thank you for your help

August 9, 2015, 14:33
#50
New Member

wen long
Join Date: May 2012
Posts: 29
Rep Power: 12
I think it is an issue with Tecplot itself on how contours are rendered . The data writer is still okay.

Attached example have same values for T and P, yet the plots are different Attachment 41330

See attached zip file

-Wen
Attached Files
 mat2tecplot_v1.4.zip (82.1 KB, 11 views)

Last edited by wenlong; August 10, 2015 at 14:52.

August 10, 2015, 14:55
update (v1.4)
#51
New Member

wen long
Join Date: May 2012
Posts: 29
Rep Power: 12
Quote:
 Originally Posted by wenlong fix a few typos in readme
A slightly corrected version (v1.4)

-Wen
Attached Files
 mat2tecplot_v1.4.zip (82.1 KB, 22 views)

September 16, 2015, 20:00
#52
New Member

wen long
Join Date: May 2012
Posts: 29
Rep Power: 12
Quote:
 Originally Posted by wenlong fix a few typos in readme
Quote:
 Originally Posted by victorapm Dear Wen Long, it gave exactly the same result as before. So, the problem is not with the variable "z". My opinion is that it is around the lines 9165-9185, which write the variables "P" and "T": Code: ```switch(iv) %by default matlab fwrite() writes array A[Imax,Jmax,Kmax] %with i=1:Imax, j=1:Jmax,k=1:Kmax and with i varying the fastest, %j the second and k the last %hence we do not have to have k,j,i nested loops as above case 1 surface_data_value=x_data(1:Imax-1,1:Jmax-1); case 2 surface_data_value=y_data(1:Imax-1,1:Jmax-1); case 3 surface_data_value=z_data(1:Imax-1,1:Jmax-1); otherwise surface_data_value=tdata.surfaces(isurf).v(iv-3,1:Imax-1,1:Jmax-1); end %also need to pad zeros to make sure it (only needed for ordered data) %occupies the same size as nodal %variables surface_data_value=reshape(surface_data_value,[1,(Imax-1)*(Jmax-1)]); surface_data_value=[surface_data_value zeros([1,Imax*Jmax-(Imax-1)*(Jmax-1)])]; fwrite(fid_out,surface_data_value,var_formatstr{iv});``` Thank you for your help

This is now fixed in v1.5 See attached file with an example.
Attached Files
 mat2tecplot_v1.5.zip (96.0 KB, 149 views)

 September 17, 2015, 14:33 #53 New Member   wen long Join Date: May 2012 Posts: 29 Rep Power: 12 V1.5 updated in the end. Or simple click the clip(attachment) on the top right of the thread

October 1, 2015, 15:24
#54
New Member

wen long
Join Date: May 2012
Posts: 29
Rep Power: 12
This is solved in version 1.5 above

Quote:
 Originally Posted by victorapm Dear Wen Long, it gave exactly the same result as before. So, the problem is not with the variable "z". My opinion is that it is around the lines 9165-9185, which write the variables "P" and "T": Code: ```switch(iv) %by default matlab fwrite() writes array A[Imax,Jmax,Kmax] %with i=1:Imax, j=1:Jmax,k=1:Kmax and with i varying the fastest, %j the second and k the last %hence we do not have to have k,j,i nested loops as above case 1 surface_data_value=x_data(1:Imax-1,1:Jmax-1); case 2 surface_data_value=y_data(1:Imax-1,1:Jmax-1); case 3 surface_data_value=z_data(1:Imax-1,1:Jmax-1); otherwise surface_data_value=tdata.surfaces(isurf).v(iv-3,1:Imax-1,1:Jmax-1); end %also need to pad zeros to make sure it (only needed for ordered data) %occupies the same size as nodal %variables surface_data_value=reshape(surface_data_value,[1,(Imax-1)*(Jmax-1)]); surface_data_value=[surface_data_value zeros([1,Imax*Jmax-(Imax-1)*(Jmax-1)])]; fwrite(fid_out,surface_data_value,var_formatstr{iv});``` Thank you for your help

 October 13, 2015, 10:44 #55 New Member   Join Date: Mar 2012 Posts: 27 Rep Power: 13 Hi can someone please check if Example 2 v1.5 works? For me it doesnt T=0 instead of the values specified if I read it into Tecplot 360EX 2015 R2. Code: ``` Example 2: generate a 2D line in (x,y) with temperature T defined on (x,y). Note there is no z in this case. By default line is defined by points of (x,y) pairs, and variable T is a function defined on the line. tdata=[]; tdata.Nvar=3; tdata.varnames={'x','y','T'}; tdata.lines(1).zonename='myline zone'; tdata.lines(1).x=[1,2,3,4,5,6,7,8,9,10]; tdata.lines(1).y=[1,2,3,4,5,6,7,8,9,10]+10; tdata.lines(1).v(1,:)=[10,20,30,30,20,10,10,10,20,20]; mat2tecplot(tdata,'myline2DT_xy.plt')```

 October 27, 2015, 14:17 #56 New Member   wen long Join Date: May 2012 Posts: 29 Rep Power: 12 Hi, Peterputer The third variable 'T' is treated as z internally and it is given values as zero when z is not explicitly defined. This seems to be a bug for the code. To overcome this problem, you can use: % %test Example 2 % tdata=[]; tdata.Nvar=4; tdata.varnames={'x','y','z','T'}; tdata.lines(1).zonename='myline zone'; tdata.lines(1).x=[1,2,3,4,5,6,7,8,9,10]; tdata.lines(1).y=[1,2,3,4,5,6,7,8,9,10]+10; tdata.lines(1).v(1,=0*[10,20,30,30,20,10,10,10,20,20]; tdata.lines(1).v(2,=[10,20,30,30,20,10,10,10,20,20]; mat2tecplot(tdata,'myline2DT_xy.plt') and use x,y,T instead. Or you can also try instead of getting it in the v, put the T value in z as below: tdata=[]; tdata.Nvar=3; tdata.varnames={'x','y','T'}; tdata.lines(1).zonename='myline zone'; tdata.lines(1).x=[1,2,3,4,5,6,7,8,9,10]; tdata.lines(1).y=[1,2,3,4,5,6,7,8,9,10]+10; tdata.lines(1).z=[10,20,30,30,20,10,10,10,20,20]; mat2tecplot(tdata,'myline2DT_xyT.plt') In essence, only use v if you have more than 3 variable, v(i, is supposed to be corresponding to the i+3'th variable in varnames list

January 28, 2016, 12:51
Visualization on tecplot
#57
New Member

Nicholas Prince
Join Date: Jan 2016
Posts: 1
Rep Power: 0
Quote:
 Originally Posted by wenlong Hi ciccio Cubes are simple, because you have 36x36x36 for the cubes vertex points and your u,v,w are on the center of each cube, that means you should supply u,v,w as 35x35x35 arrays instead. Here is an example code ---------------------- tdata=[]; tdata.Nvar=6; tdata.varnames={'x','y','z','u','v','w'}; tdata.cubes(1).zonename='my IJK volume cubes zone'; x=(1:1:36); y=(1:1:36); z=z(1:1:36); [x3d,y3d,z3d]=meshgrid(x,y,z); tdata.cubes(1).x=x3d; tdata.cubes(1).y=y3d; tdata.cubes(1).z=z3d; u3d=repmat(random('norm',0.1,0.2,35),[1,1,35]); v3d=repmat(random('norm',0.1,0.2,35),[1,1,35]); w3d=repmat(random('norm',0.1,0.2,35),[1,1,35]); tdata.cubes(1).v(1,:,:,: )=u3d; tdata.cubes(1).v(2,:,:,: )=v3d; tdata.cubes(1).v(3,:,:,: )=w3d; tdata.cubes(1).varloc=1; mat2tecplot(tdata,'mycube_IJK_volume_cellcenter.pl t') ------------------ Then you can view the plot in tecplot, and attached pic is what I got. Wen
Nice work Wen. I'm new to tecplot, how do I visualize this matlab m file in tecplot please? I attached the m file for a clearer understanding.

Thank you.

Any other member is welcome to help me out.
cheers
Attached Files
 code_pdf.pdf (32.2 KB, 46 views)

 February 3, 2016, 19:06 mat2tecplot 3d matrix..please help.. #58 New Member   Erkam BULUR Join Date: Jan 2016 Posts: 1 Rep Power: 0 Hi my friends.. I have a data as 3d matrix like A(x,y,z). I have created it in matlab. I want to learn how to draw contour plot according to the variable z and make animation in tecplot. Variables x and y are my datas which are created after running my program. and Variable z is as time or step per calculation(for loop).

February 17, 2016, 14:03
#59
New Member

wen long
Join Date: May 2012
Posts: 29
Rep Power: 12
Quote:
 Originally Posted by blr123 Hi my friends.. I have a data as 3d matrix like A(x,y,z). I have created it in matlab. I want to learn how to draw contour plot according to the variable z and make animation in tecplot. Variables x and y are my datas which are created after running my program. and Variable z is as time or step per calculation(for loop).
Try to use solutiontime and 2D surface for your purpose.

create many zones, each zone give it a solutiontime that corresponds to your z value. Then use value of A for any given z on all (x,y) points.

http://www.cfd-online.com/Forums/mis...ments&t=103860

 December 12, 2018, 23:57 how can i do for matlab to tecplot ? #60 New Member   chiang chi yang Join Date: Dec 2018 Posts: 1 Rep Power: 0 i have a imformatin 1440*16(x,y,z,u,v,w,dudx....) i want to make vortex z in tecplot how can i make for this problem help me plz i am tw.