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

4 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Matt J
Matt J am 30 Okt. 2018
Bearbeitet: Matt J am 30 Okt. 2018
Maybe just do
B=L2(:,:,j)*L1(:,:,j)';

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by