我需要两个大小相同的非常大的矢量(列)A和B.我想将矢量A除以矢量B.这将给我一个填充零的大矩阵AxB,除了最后一列。这个列包含我感兴趣的值。当我在Matlab脚本中简单地划分向量时,我的内存不足。可能是因为矩阵AxB变得非常大。我可以通过重复以下内容来防止这种情况发生:
计算矩阵AxB的第一行
过滤最后一个值并将其放入另一个向量C.
删除已用过的矩阵AxB行
对向量A中的所有行重做步骤1-4
我怎样才能制作一个这样做的循环?
答案 0 :(得分:0)
你的问题并没有说明你想要做什么,虽然听起来你想做一个明智的分工。
尝试:
C = A./B
答案 1 :(得分:0)
“矩阵产品AxB”和“分割矢量”是不同的操作。 如果我们理解这一点,你想要计算的是“C = AxB的最后一列”,这样:
lastcolsel=zeros(size(B,2),1)
C=(A*B)*lastcolsel
如果该代码破坏了您的内存限制,请回想一下矩阵产品是关联的(MxN)xP = Mx(NxP)。简化您的示例,我们得到:
lastcolsel=zeros(size(B,2),1)
simplifier=B*lastcolsel
C=A*simplifier