123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- function V = spm_data_write(V,Y,varargin)
- % Write data to disk [V(I) = Y]
- % FORMAT V = spm_data_write(V,Y)
- % V - a structure array (see spm_data_hdr_read)
- % Y - an array of data values
- %
- % FORMAT V = spm_data_write(V,Y,I)
- % V - a structure array (see spm_data_hdr_read)
- % Y - an array of data values
- % I - linear index to data values
- %__________________________________________________________________________
- % Copyright (C) 2012-2014 Wellcome Trust Centre for Neuroimaging
- % Guillaume Flandin
- % $Id: spm_data_write.m 5916 2014-03-13 13:15:02Z guillaume $
- if isfield(V,'private')
- cl = class(V.private);
- elseif isfield(V,'dat')
- cl = 'struct';
- else
- error('Unkwown data type.');
- end
- switch cl
- case 'nifti'
- if isempty(varargin)
- V = spm_write_vol(V,Y);
- %S = substruct('()',repmat({':'},1,numel(V.private.dat.dim)));
- %V.private.dat = subsasgn(V.private.dat,S,Y);
- else
- if numel(varargin) == 1
- try
- V.private.dat(varargin{1}) = reshape(Y,size(varargin{1}));
- catch
- V.private.dat(varargin{1}) = reshape(Y,size(varargin{1}))';
- end
- else
- error('not implemented yet');
- end
- end
- case 'struct'
- if isempty(varargin)
- V.dat = Y;
- else
- if numel(varargin) == 1
- V.dat(varargin{1}) = reshape(Y,size(varargin{1}));
- else
- error('not implemented yet');
- end
- end
- case 'gifti'
- if isempty(varargin)
- D = V.private.cdata;
- D = subsasgn(D,substruct('()',{':'}),Y);
- %V.private.cdata = D;
- else
- try
- %V.private.cdata(varargin{1}) = reshape(Y,size(varargin{1}));
- V.private.private.data{1}.data(varargin{1}) = reshape(Y,size(varargin{1}));
- catch
- %V.private.cdata(varargin{1}) = reshape(Y,size(varargin{1}))';
- V.private.private.data{1}.data(varargin{1}) = reshape(Y,size(varargin{1}))';
- end
- end
- otherwise
- error('Unknown data type.');
- end
|