📄 orthvec.m
字号:
function ovec = orthvec(ivec, svec)
% orthvec - cheap orthogonalization
%
% FORMAT: ovec = orthvec(ivec, svec)
%
% Input fields:
%
% ivec vector to become orthogonal
% svec standard vector (unchanged)
%
% Output fields:
%
% ovec output vector
% Version: v0.6c
% Build: 7011012
% Date: Jan-10 2007, 12:50 PM CET
% Author: Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools
% argument check
if nargin < 2 || ...
~isa(ivec, 'double') || ...
~isa(svec, 'double') || ...
numel(size(ivec)) ~= numel(size(svec)) || ...
numel(ivec) ~= length(ivec) || ...
any(size(ivec) ~= size(svec)) || ...
any(isinf(ivec) | isnan(ivec) | isinf(svec) | isnan(svec))
error( ...
'BVQXtools:BadArgument', ...
'Two same-dim vectors without Inf/Nans are required.' ...
);
end
% calculate cov/corr
cv = sqrt(diag(cov([svec(:), ivec(:)])));
cr = corrcoef([svec(:), ivec(:)]);
% reshape ivec
ovec = ivec - (cr(2, 1) * cv(2) / cv(1)) * svec;
% clear dummy entries
ovec(abs(ovec) <= eps) = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -