% Save MATALB variables in VTK format % x is a list of points % y is a list of values in the x points % VarName is the Variable Name % % Example: % % x=[0:0.1:2*pi]; % y=sin(x); % plot(x,y); % savevtk_xy(x,y,'sin(x)'); % % Coded by Sebastian Jardi Estadella % http://www.tinet.org/~sje/index_en.htm % function [fd,err]=savevtk_xy(x,y,VarName) nx=length(x); ny=length(y); if nx~=ny disp('X and Y have to be of the same length'); break; end filename=sprintf('%s.vtk',VarName); fd=fopen(filename,'w'); % Open for write and create file if required % and deletes previous contents. fprintf(fd,'# vtk DataFile Version 2.0\n'); % Start to write. err=fclose(fd); % closes file. fd=fopen(filename,'a'); % Open to append data fprintf(fd,'Structured Grid\n'); fprintf(fd,'ASCII\n'); fprintf(fd,'\n'); fprintf(fd,'DATASET RECTILINEAR_GRID\n'); fprintf(fd,'DIMENSIONS %d %d %d\n',nx,1,1); fprintf(fd,'X_COORDINATES %d double\n',nx); for i=1:nx fprintf(fd,'%e\n',x(i)); end fprintf(fd,'\n'); fprintf(fd,'Y_COORDINATES 1 double\n'); fprintf(fd,'0 \n'); fprintf(fd,'Z_COORDINATES 1 double\n'); fprintf(fd,'0 \n'); fprintf(fd,'\n'); fprintf(fd,'POINT_DATA %d\n',nx); fprintf(fd,'SCALARS '); fprintf(fd,VarName); fprintf(fd,' double 1\n'); fprintf(fd,'LOOKUP_TABLE TableName\n'); for i=1:length(y) fprintf(fd,'%e\n',y(i)); end fprintf(fd,'\n'); err=fclose(fd);