renormsol.m

来自「这是一个三面阵列的数学工具软件」· M 代码 · 共 36 行

M
36
字号
function [A,B,C,G]=renormsol(A,B,C,G,mode);
% [A,B,C,G]=renormsol(A,B,C,G,mode);
% renormalize solution: normalize core to unit sum of squares
% Input: A,B,C = component matrices
%			G = core
%			mode = mode to renormalize (1 = A, 2 = B, or 3 = C)
% Output: A,B,C = component matrices
%			G = core

[n,r1]=size(A);
[m,r2]=size(B);
[p,r3]=size(C);

if mode==1
   ss=diag(sum(G'.^2).^.5);
   A=A*ss;
   G=ss\G;
end;
if mode==2
   G=permnew(G,r1,r2,r3);
   ss=diag(sum(G'.^2).^.5);
   B=B*ss;
   G=ss\G;
   G=permnew(G,r2,r3,r1);
   G=permnew(G,r3,r1,r2);
end;
if mode==3
   G=permnew(G,r1,r2,r3);
   G=permnew(G,r2,r3,r1);
   ss=diag(sum(G'.^2).^.5);
   C=C*ss;
   G=ss\G;
   G=permnew(G,r3,r1,r2);
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?