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

📄 orthvec.m

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