我必须有两个大小均匀的非常大的向量(列)A 和 B。我想将向量 A 除以向量 B。这将给我一个用零填充的大矩阵 AxB,除了最后一列。此列包含我感兴趣的值。当我在 Matlab 脚本中简单地划分向量时,内存不足。可能是因为矩阵 AxB 变得非常大。可能我可以通过重复以下操作来防止这种情况发生:
计算矩阵 AxB 的第一行
过滤最后一个值并将其放入另一个向量 C.
删除矩阵 AxB 的已使用行
对向量 A 中的所有行重做步骤 1-4
我怎样才能做一个循环呢?
您的问题并没有明确说明您要做什么,尽管听起来您想做一个元素明智的划分。
尝试:
C = A./B
“矩阵乘积 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