📄 fmr_writeanalyzeseries.m
字号:
function rvalue = fmr_WriteAnalyzeSeries(hfile, pattern, offset, range)
% FMR::WriteAnalyzeSeries - writes analyze vols for the (entire) TC
%
% FORMAT: [OK] = fmr.WriteAnalyzeSeries([pattern, offset, range]);
%
% Input fields:
%
% pattern analyze filename pattern (default: fmrvol_%03d.vol)
% offset first number for output file (default: 1)
% range which FMR volumes to write (default: all)
%
% Output fields:
%
% OK true if write was successful
% Version: v0.7b
% Build: 7083010
% Date: Aug-30 2007, 10:15 AM CEST
% Author: Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools
% argument check
if nargin < 1 || ...
numel(hfile) ~= 1 || ...
~isBVQXfile(hfile, 'fmr')
error( ...
'BVQXfile:BadArgument', ...
'Invalid call to %s.', ...
mfilename ...
);
end
% get content
bc = bvqxfile_getcont(hfile.L);
% if slice data not loaded at all?
if isempty(bc.Slice) || ...
~isstruct(bc.Slice) || ...
~isfield(bc.Slice, 'STCData')
% make sure data is loaded
try
fmr_LoadSTC(hfile);
bc = bvqxcont(ifile).C;
catch
error( ...
'BVQXfile:InternalError', ...
'Error loading required STC data.' ...
);
end
end
try
if istransio(bc.Slice.STCData)
bc.Slice.STCData = bc.Slice.STCData(:, :, :, :);
bvqxfile_setcont(hfile.L, bc);
end
catch
error( ...
'BVQXfile:InternalError', ...
'Error resolving transio.' ...
);
end
numvol = bc.NrOfVolumes;
% check further arguments
if nargin < 4 || ...
~isa(range, 'double') || ...
isempty(range) || ...
any(isinf(range(:)') | isnan(range(:)')) || ...
any(fix(range(:)') ~= range(:)' | range(:)' < 1 | range(:)' > numvol)
range = 1:numvol;
end
range = range(:)';
if length(range) == 2
range = range(1):range(2);
end
if nargin < 3 || ...
~isa(offset, 'double') || ...
numel(offset) ~= 1 || ...
isinf(offset) || ...
isnan(offset) || ...
fix(offset) ~= offset || ...
offset < 1 || ...
offset > 9999
offset = 1;
end
if nargin < 2 || ...
~ischar(pattern) || ...
~any(pattern(:)' == '%') || ...
(isempty(strfind(lower(pattern(:)'), '.img')) && ...
isempty(strfind(lower(pattern(:)'), '.hdr')))
pattern = sprintf('fmrvol_%%0%dd.img', length(num2str(numvol + offset - 1)));
end
pattern = pattern(:)';
% try to create progress bar
try
pbar = BVQXprogress;
BVQXprogress(pbar, 'settitle', 'Writing FMR Analyze series...');
BVQXprogress(pbar, 0, 'Writing volumes...', 'visible', 1, numel(range));
catch
pbar = [];
end
% loop over images
for vc = 1:numel(range)
tname = sprintf(pattern, range(vc) + offset - 1);
succ = fmr_WriteAnalyzeVol(hfile, range(vc), tname);
if ~succ
if ~isempty(pbar)
closebar(pbar);
end
error( ...
'BVQXfile:InternalError', ...
'Error writing volume %d to file %s.', ...
range(vc), tname ...
);
end
if ~isempty(pbar)
BVQXprogress(pbar, vc, sprintf('Writing volume %d...', vc));
end
end
if ~isempty(pbar)
closebar(pbar);
end
rvalue = succ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -