📄 writestcfiles.m
字号:
function writestcfiles(fourd, filetmp, sdim)
% writestcfiles - create STC files from a 4D array
%
% FORMAT: writestcfiles(fourd, filetmp [, sdim])
%
% Input fields:
%
% fourd 4-D data array (if not within 0..32767, will be norm.)
% filetmp filename template with one %d sequence
% sdim dimension of slices (default: 1)
% Version: v0.6d
% Build: 7021912
% Date: Feb-19 2007, 12:00 PM CET
% Author: Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools
% check arguments
if nargin < 2 || ...
~isnumeric(fourd) || ...
numel(size(fourd)) < 3 || ...
numel(size(fourd)) > 4 || ...
~ischar(filetmp) || ...
isempty(strfind(filetmp(:)', '%d'))
error( ...
'BVQXtools:BadArguments', ...
'Invalid or missing argument given.' ...
);
end
filetmp = filetmp(:)';
if nargin < 3 || ...
~isa(sdim, 'double') || ...
numel(sdim) ~= 1 || ...
isinf(sdim) || ...
isnan(sdim) || ...
sdim < 1 || ...
sdim > 4
sdim = 1;
else
sdim = real(sdim);
end
if sdim ~= 1
fourd = permute(fourd, [sdim, setdiff(1:numel(size(fourd)), sdim)]);
end
% get dimensions
ad = size(fourd);
% check datatype
mna = min(fourd(:));
if mna < 0
fourd = fourd - mna;
end
mxa = max(fourd(:));
if mxa >= 32767.5
fourd = fourd / (mxa / 32768);
end
fourd = round(fourd);
% get a slice
slice = BVQXfile('new:stc');
slice.NrOfRows = ad(2);
slice.NrOfCols = ad(3);
slice.NrOfVolumes = ad(4);
% iterate over slices
for sc = 1:ad(1)
slice.STCData = squeeze(fourd(sc, :, :, :));
slice.SaveAs(sprintf(filetmp, sc));
end
% clear object
slice.ClearObject;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -