fastest way to apply A\B on each matrix page
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
hosein Javan
il 17 Ago 2020
Commentato: hosein Javan
il 17 Ago 2020
I would like to find an efficient fast way for calculating:
for i = 1:n
X(:,:,i) = A(:,:,i)\B(:,:,i)
end
where A and B are 10*10*n, and 10*1*n size matrices respectively. the matrices are large and must be called meny times. therefore I was thinking of replacing "for loops" with a faster way that does it very fast and not iteratively.
0 Commenti
Risposta accettata
Bruno Luong
il 17 Ago 2020
Modificato: Bruno Luong
il 17 Ago 2020
Why insist on ARRAYFUN, your for-loop is perfectly fine. ARRAYFUN is a "vectoriztion" scam.
n = 100;
A = rand(10,10,n);
B = rand(10,1,n);
X = arrayfun(@(p) A(:,:,p)\B(:,:,p), 1:n, 'unif', 0);
X = cat(3,X{:});
5 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!