
通过矩阵乘法运算实现,
比如
A=[1,2;3,4;5,6]
sum(A)可以写成[1,1,1;1,1,1]A
我有两点疑问:
16105175287520这么大的矩阵,MATLAB根本读不进来。(我粗算了一下占用内存约几十万个G)除非是用稀疏矩阵。
所以我对你的问题表示怀疑,因为你没有办法将这些数一次读进MATLAB,更不用说处理它了。如果读不进来的话,那么什么办法都是白谈。
另外一种就是直接读文件,然后循环处理,但是它的大小是几十万个G,这使得此方法可能也不可取。
%%%%%%%%%%%%%%%%%%%%%
我看了你的问题,我觉得你还是把你的本意说清楚一些。
想做什么,而不是实现什么。
对于你这个问题,你应当不用组装起所有你的那么大的矩阵。
另外:
A是-5:1:5选5个里面所有的排列,有1610515;这个好像有问题。从多少个里面选五个,好像都不是161051这个数。
%%%%%%%%%%%%%%
建议你得自己写排列组合的程序,用循环的方式来弄。
数据量小的话,可以一次把所有的可能生成出来,数据量大,根本没有办法把所有可能一次弄出来。
用循环的话,我不建议你用MATLAB,因为MATLAB对于矩阵计算优势很大,但对于循环并不是它的强项。
有没有现成的函数不知道,但是实现起来应该不难。我采用跟C类似的方法经过两次循环实现的。代码如下:
[ra,ca] = size(a);
[rb,cb] = size(b);
for i = 1:raca
for j = 1:rbcb
if a(i) == b(j)
a(i) = 0;
end
end
end
a,b可以为任意形式的矩阵。
我不懂你说的互质分解是什么意思
关于矩阵分解matlab有下边几种 (x是要分解的矩阵)
三角分解
[l,u]=lu(x) 结果是x=lu l是下三角 u是上三角矩阵
正交分解
[q,r]=qr(x) 结果是 q是上三角 r是正交的矩阵
3 特征值分解
[v,d]=eig(x) 结果中的d是矩阵的特征值组成的对角阵,v是特征向量组成的矩阵
4 chollesky分解
R=chol(x) x=RR' r'是r的转置 要求x矩阵式对称正定的,此时对角元为正的上三角R唯一
5 奇异值分解
[u s v]=svd(x) s对角阵 uv正交阵 x=usv'
以上就是关于matlab中把矩阵分解为列向量全部的内容,包括:matlab中把矩阵分解为列向量、matlab怎么把矩阵的分解为两个相同的矩阵、请教如何利用matlab对矩阵进行右互质分解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)