%正交规范化 %输入:ka为待处理的矩阵,ea为基向量矩阵 %输出:kb为正交规范化后的矩阵

function [kb]=orthog_norm(ka,ea) %获取矩阵的行数和列数 [a,n] = size(ka); [b,m] = size(ea);

%初始化输出矩阵kb
kb=zeros(a,n);

%预处理矩阵ka*ea.'
ka_ea = ka*ea.';
%计算ea矩阵每行的2范数
ea_norms = vecnorm(ea, 2, 2);

%循环处理ka的每一行
for i=1:a
    %初始化用于计算正交向量的中间变量
    s = zeros(1,n);
    %循环处理ea的每一行
    for j=1:b
        %计算ka的第i行与ea的第j行的点积
        ka_ea_dot = ka_ea(i,j);
        %计算ea的第j行的2范数
        ea_norm = ea_norms(j);
        %将ka的第i行与ea的第j行进行正交分解,并将结果累加到中间变量s中
        s = s + (ka_ea_dot*(ea(j,:)./ea_norm));
    end
    %计算ka的第i行与s的差,即正交向量k
    k = ka(i,:) - s;
    %将正交向量k进行2范数归一化,并将结果保存到输出矩阵kb的第i行
    kb(i,:) = k./norm(k, 2);
end

en

function kb=orthog_normkaea 正交单位化 an = sizeka; bm = sizeea; kb=zerosan; precompute matrix product kaea ka_ea = kaea; ea_norms = vecnormea 2 2; for i=1a s = zeros1n;

原文地址: https://www.cveoy.top/t/topic/egUv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录