我正在MATLAB进行CDMA扩频。尽管我升级了 RAM、预分配数组等,但 MATLAB 仍然出现内存不足错误。
是否有替代方法 kron ( Kronecker tensor product ) 在 MATLAB 中?这是我的代码:
tempData = kron( Data, walsh);
Data
是一个 M x 1 矩阵,walsh
(扩展码)是一个 8 x 1 矩阵。
我的数据由实部和虚部组成,例如: double 格式的 0.000 + 1.000i
或 1.000 + 0.000i
。
最佳答案
对 kron 的调用不是内存密集型的。我知道,你的问题看起来很微不足道。但是,您没有告诉我们 M 是什么。对于非常大的 M 值,您只是试图创建太大的数组以适应内存。人们很容易忘记您的计算机并不是无限大或无限快。当我们在一切事物面前看到“giga”时,我们会被宠坏。
如果您绝对必须对 M 值执行此操作,那么您可能需要 64 位版本的 MATLAB,并且一旦执行此操作,更多内存总是会有所帮助。
如果您能承受精度损失,另一种选择是使Data
为单精度。这至少会给你一个额外的因子2。为了提供最好的帮助,我们需要知道M的大小。
关于matlab - kron 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2302455/