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

3 vues (au cours des 30 derniers jours)
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

Réponse acceptée

Matt J
Matt J le 30 Oct 2018
Modifié(e) : Matt J le 30 Oct 2018
Maybe just do
B=L2(:,:,j)*L1(:,:,j)';

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by