今天写程序的时候有个问题,因为一个函数会同时在8个进程里运行,在这个函数内部会创建巨大的矩阵,而matlab默认的zeros函数和ones函数创建的矩阵数据类型都是double,对内存的压力比较大。考虑到我又不需要这么高的精度,于是想创建整型矩阵来降低内存占用,查了一下发现可以这样写。
dataLen = signal.dataLen;
factorVector = zeros(dataLen,1,'int8');
这里的factorVector就是我想要的系数矩阵
其中int8可以替换为matlab其他的数据类型
不过非常不幸,matlab不支持整型变量和复数变量相乘,所以我还是得用double类型的矩阵,不然会提示
错误使用_*_
不支持复整数算术运算。