fastest way to apply A\B on each matrix page
2 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Bruno Luong
on 17 Aug 2020
Edited: Bruno Luong
on 17 Aug 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{:});
More Answers (0)
See Also
Categories
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!