# fastest way to apply A\B on each matrix page

3 visualizaciones (últimos 30 días)
hosein Javan el 17 de Ag. de 2020
Comentada: hosein Javan el 17 de Ag. de 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 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Bruno Luong el 17 de Ag. de 2020
Editada: Bruno Luong el 17 de Ag. de 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 comentariosMostrar 3 comentarios más antiguosOcultar 3 comentarios más antiguos
hosein Javan el 17 de Ag. de 2020
Bruno Luong. sorry for misunderstanding. I did not mean to decieve. I only thought that arrayfun is a best replace for "loop". I'll edit the question.
hosein Javan el 17 de Ag. de 2020
I studied your MultiSolver. it was using concatenation diagonally and make a sparse matrix as I said. I see there's no better way. however ur using of repmat and rehsape was something speedy to extract unknowns without loops. I accept your answer. thanks, but I'd like to mention once more that it was misunderstanding. please don't use words like "big scam". thanks again.

Iniciar sesión para comentar.

### Categorías

Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by