0

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

  1. 计算矩阵 AxB 的第一行

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

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

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

我怎样才能做一个循环呢?

4

2 回答 2

0

您的问题并没有明确说明您要做什么,尽管听起来您想做一个元素明智的划分。

尝试:

C = A./B
于 2013-02-12T18:57:55.417 回答
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
于 2017-09-16T18:21:52.763 回答