fs_write_curv.m

来自「Matlab下的EEG处理程序库」· M 代码 · 共 57 行

M
57
字号
function [curv] = fs_write_curv(fname, curv, fnum, ver)

% FS_WRITE_CURV - FREESURFER I/O function to write a curvature file
% 
% [curv] = fs_write_curv(fname, curv, fnum, [ver])
% 
% writes a curvature vector into a binary file
% fname - name of file to write
% curv  - vector of curvatures, one for each vertex
% fnum  - # of faces in surface.
% ver   - 'old' or 'new' version format (new by default)
% 
% See also FS_READ_CURV, FS_WRITE_SURF, FS_WRITE_WFILE


if(nargin < 3),
    fprintf('USAGE: curv = fs_write_curv(fname, curv, fnum, [ver])\n');
    return;
end

if ~exist('ver','var'), ver = 'new'; end
if isempty(ver), ver = 'new'; end


% curv array is one value per vertex, 
% so we get the number of vertices:
vnum = length(curv) ;

% open file as a big-endian file
fid = fopen(fname, 'wb', 'b') ;

switch lower(ver),
    
case 'new',
    
    fprintf('...writing new curv version (float)\n');
    
    NEW_VERSION_MAGIC_NUMBER = 16777215;
    fs_fwrite3(fid, NEW_VERSION_MAGIC_NUMBER ) ;
    
    fwrite(fid, vnum,'int32');
    fwrite(fid, fnum,'int32');
    fwrite(fid,    1,'int32'); % vals_per_vertex
    fwrite(fid, curv,'float');
    fclose(fid) ;
    
case 'old',
    
    fprintf('...writing old curv version (int16)\n');
    
    fs_fwrite3(fid,vnum) ;
    fs_fwrite3(fid,fnum) ;
    fwrite(fid, curv .* 100, 'int16') ;
end

return

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?