满意答案
lajl489193
2014.05.16
采纳率:59% 等级:9
已帮助:762人
通过矩阵乘法运算实现,
比如
A=[1,2;3,4;5,6]
sum(A)可以写成[1,1,1;1,1,1]*A
我有两点疑问:
161051*75287520这么大的矩阵,MATLAB根本读不进来。(我粗算了一下占用内存约几十万个G)除非是用稀疏矩阵。
所以我对你的问题表示怀疑,因为你没有办法将这些数一次读进MATLAB,更不用说处理它了。如果读不进来的话,那么什么办法都是白谈。
另外一种就是直接读文件,然后循环处理,但是它的大小是几十万个G,这使得此方法可能也不可取。
%%%%%%%%%%%%%%%%%%%%%
我看了你的问题,我觉得你还是把你的本意说清楚一些。
想做什么,而不是实现什么。
对于你这个问题,你应当不用组装起所有你的那么大的矩阵。
另外:
A是-5:1:5选5个里面所有的排列,有161051*5;这个好像有问题。从多少个里面选五个,好像都不是161051这个数。
%%%%%%%%%%%%%%
建议你得自己写排列组合的程序,用循环的方式来弄。
数据量小的话,可以一次把所有的可能生成出来,数据量大,根本没有办法把所有可能一次弄出来。
用循环的话,我不建议你用MATLAB,因为MATLAB对于矩阵计算优势很大,但对于循环并不是它的强项。
00分享举报