Replacement for bsxfun(@times)?
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
John D'Errico
2014 年 7 月 21 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!