熟悉了c语言的思维和c++显式的变量类型定义后,用matlab非常的不习惯,就算是用了很久依旧觉得不舒服。最近写一个通信系统仿真的代码(matlab),然后就遇到了恼火的问题。为了测试高信噪比条件下的误码率,必须要大量的仿真数据。比如估计的误码率在10^-4左右,那么仿真用的点数最少要有10^5个,还是保守估计,如果需要更高的性能仿真的话真的是无止境的大啊
然后悲剧的就出现了:“out of
memory"!
想办法解决吧,上网查资料:
问题根源要从matlab那我认为并不严谨的变量使用和分配方式开始谈起。如果是c/c++的话我可以知道我的每一个变量的类型大小和分配在哪里,我总觉得可以控制的时候不容易出错,果然被林老师和邹老师洗脑了……
但是matlab注重的是数值计算,为了方便工程人员使用,舍去了很多繁琐的语法和规定,后果就是感觉使用matlab像是在玩计算器……
Matlab中矩阵是以Block,也就是块的形式存储的。也就是说,当Matlab在为即将存储的矩阵划分块时,如果没有相应大小的连续内存,即使实际内存没有被完全使用,它还是会报告“Out
of Memory”。
两种解决思路:
1.
提高程序运行时分配的内存
1.1 由于32位 Windows 操作系统的限