Home > SurfStat > SurfStatWriteData.m

SurfStatWriteData

PURPOSE ^

Writes data (e.g. thickness) to a single .txt or FreeSurfer file.

SYNOPSIS ^

function SurfStatWriteData( filename, data, ab )

DESCRIPTION ^

Writes data (e.g. thickness) to a single .txt or FreeSurfer file. 

 Usage: SurfStatWriteData( filename, data [, ab] );

 filename = .txt or FS file name, either new version binary or ASCII. 
 ab       = 'a' for ASCII or 'b' for binary. 

 data = k x v matrix of data, v=#vertices.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function SurfStatWriteData( filename, data, ab )
0002 
0003 %Writes data (e.g. thickness) to a single .txt or FreeSurfer file.
0004 %
0005 % Usage: SurfStatWriteData( filename, data [, ab] );
0006 %
0007 % filename = .txt or FS file name, either new version binary or ASCII.
0008 % ab       = 'a' for ASCII or 'b' for binary.
0009 %
0010 % data = k x v matrix of data, v=#vertices.
0011 
0012 [k,v]=size(data);
0013 [pathstr,name,ext] = fileparts(filename);
0014 if strcmp(ext,'.txt')
0015     % It's a .txt file
0016     format=[repmat('%f ',1,k) '\n'];
0017     fid=fopen(file,'w');
0018     fprintf(fid,format,data);
0019 else
0020     % Assume it's a FreeSurfer file
0021     if nargin<3 | ab(1)=='b'
0022         fid = fopen(filename, 'wb', 'b') ;
0023         magic = 16777215;
0024         b1 = bitand(bitshift(magic, -16), 255) ;
0025         b2 = bitand(bitshift(magic, -8), 255) ;
0026         b3 = bitand(magic, 255) ;
0027         fwrite(fid, [b1 b2 b3], 'uchar') ;
0028         fwrite(fid, [v 0 k], 'int32') ;
0029         fwrite(fid, data, 'float') ;
0030     else
0031         fid = fopen(filename, 'w') ;
0032         fprintf(fid, '%d\n', v) ;
0033         data=[zeros(4,v); data];
0034         format=[repmat('%f ',1,4+k) '\n'];
0035         fprintf(fid, format, data) ;
0036     end
0037 end
0038 fclose(fid) ;
0039     
0040 return
0041 end

Generated on Fri 26-Sep-2008 14:05:29 by m2html © 2003