matlab中把矩阵分解为列向量

matlab中把矩阵分解为列向量,第1张

通过矩阵乘法运算实现,

比如

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对矩阵进行右互质分解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10640789.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存