⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writestcfiles.m

📁 toolbox of BVQX, This is the access between BV and matlab. It will help you to analysis data from BV
💻 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 + -