Replacement for bsxfun(@times)?
2 views (last 30 days)
Show older comments
In my code I have the following data sets:
r = <150902x1 double>
specR = <301x1 double>
Now entering the following commands creates
red = bsxfun(@times, r, specR');
red = <150902x301 double>
This works perfectly for the purposes of my script. However, when I make the r and specR arrays larger, I keep on running into memory errors where Matlab cannot create the massive arrays resulting from the bsxfun. Any suggestions on how to work around this memory error? Perhaps is there another function that I can use instead of bsxfun that only computes one line of the red array at a time? Thank you for your help in advance!
0 Comments
Answers (1)
John D'Errico
on 21 Jul 2014
You are trying to generate a LARGE array. Can you be remotely surprised that it blows your memory up? The issue is not with bsxfun, unless you really don't need that large array at all, but just need to compute something small from it.
USE A LOOP. What is the problem?
0 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!