Matlab - 矢量除以矢量,使用循环

时间:2013-02-12 17:15:25

标签: matlab loops memory vector matrix

我需要两个大小相同的非常大的矢量(列)A和B.我想将矢量A除以矢量B.这将给我一个填充零的大矩阵AxB,除了最后一列。这个列包含我感兴趣的值。当我在Matlab脚本中简单地划分向量时,我的内存不足。可能是因为矩阵AxB变得非常大。我可以通过重复以下内容来防止这种情况发生:

  1. 计算矩阵AxB的第一行

  2. 过滤最后一个值并将其放入另一个向量C.

  3. 删除已用过的矩阵AxB行

  4. 对向量A中的所有行重做步骤1-4

  5. 我怎样才能制作一个这样做的循环?

2 个答案:

答案 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