📄 glm_rfx_removepredictors.m
字号:
function hfile = glm_RFX_RemovePredictors(hfile, removep)
% GLM::RFX_RemovePredictors - removes predictors for each subject
%
% FORMAT: [glm] = glm.RFX_RemovePredictors(removep)
%
% Input fields:
%
% removep specification of predictors to remove
% Version: v0.7b
% Build: 7083023
% Date: Aug-30 2007, 11:21 PM CEST
% Author: Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools
% argument check
if nargin < 2 || ...
numel(hfile) ~= 1 || ...
~isBVQXfile(hfile, 'glm') || ...
~isa(removep, 'double') || ...
isempty(removep) || ...
any(isinf(removep(:)) | isnan(removep(:)) | removep(:) < 1 | ...
removep(:) ~= fix(removep(:)))
error( ...
'BVQXfile:BadArgument', ...
'Invalid call to %s.', ...
mfilename ...
);
end
bc = bvqxfile_getcont(hfile.L);
if bc.ProjectTypeRFX ~= 1 || ...
any(removep(:) > bc.NrOfSubjectPredictors)
error( ...
'BVQXfile:BadArgument', ...
'Invalid call to %s.', ...
mfilename ...
);
end
% get needed numbers
removep = removep(:)';
nums = bc.NrOfSubjects;
nump = bc.NrOfSubjectPredictors;
% build to-be-removed/-kept index variables
remi = false(1, nump);
remi(removep) = true;
keepi = ~remi;
remi = repmat(remi, [1, nums]);
nnump = sum(~remi) / nums;
if nnump ~= fix(nnump)
error( ...
'BVQXfile:InvalidObject', ...
'Invalid object given.' ...
);
end
% make changes
bc.NrOfSubjectPredictors = nnump;
bc.NrOfPredictors = sum(~remi);
bc.Predictor(remi) = [];
% alter BetaMaps
switch (bc.ProjectType)
case {0, 1}
for sc = 1:nums
bc.GLMData.Subject(sc).BetaMaps = ...
bc.GLMData.Subject(sc).BetaMaps(:, :, :, keepi);
end
case {2}
for sc = 1:nums
bc.GLMData.Subject(sc).BetaMaps = ...
bc.GLMData.Subject(sc).BetaMaps(:, keepi);
end
otherwise
error( ...
'BVQXfile:InvalidObject', ...
'Invalid ProjectType setting in GLM.' ...
);
end
% set back
bvqxfile_setcont(hfile.L, bc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -