I want to generate 2000 matrices for statistical analysis, when I put m=2 my code works but for greater then m it gives error like that "Error using ' Transpose on ND array is not defined. Use PERMUTE instead." see my code

1 visualizzazione (ultimi 30 giorni)
clc
tic
m=3;
A = randn(3,3, m);
J=blkdiag(eye(3),-eye(2));
B=rand(2,3);
C=hilb(2);
for j=1:m
A(:,:,j) = 0.5*(A(:,:,j)+A(:,:,j)');
A(:,:,j) = A(:,:,j) + 5*eye(3);
K=[A(:,:,j),B';B,C];
L1(:,:,j) = chol(A(:,:,j),'lower');
g(:,:,j)=L1(:,:,j)';
I(:,:,j)=inv(g(:,:,j));
L2(:,:,j)=B*I(:,:,j);
B(:,:,j)=L2(:,:,j)*L1(:,:,j)';
G(:,:,j)=(C+L2(:,:,j)*L2(:,:,j)');
L3(:,:,j) = chol(G(:,:,j),'lower');
L(:,:,j)=[L1(:,:,j) zeros(3,2);L2(:,:,j) L3(:,:,j)];
end
toc

Risposta accettata

Matt J
Matt J il 30 Ott 2018
Modificato: Matt J il 30 Ott 2018
Maybe just do
B=L2(:,:,j)*L1(:,:,j)';

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by