首页 > 解决方案 > 为已知最大大小的数组预分配空间

问题描述

无论如何要为循环中的增长/减少数组分配固定的内存块?我知道它可以具有的尺寸范围,即最小和最大尺寸。

我可以按如下方式分配一个最大大小的矩阵, A = zeros(max,max); 但这是这种方法的问题。我在循环中有矩阵乘法和逆运算。最重要的是,我正在使用切片操作(完整的行/列选择)

A[:,i]  = data(i).x;
B = A\P; 
C = A*W;

最大尺寸的分配并不顺利这些操作(尺寸不匹配错误)。

所以,我试图分配一个与最大维度相对应的内存块,但只想利用它的一部分。

我知道这可以使用循环进行矩阵运算来实现,而不是使用 Matlab 中的向量运算来实现,但这会效率低下。(实际上我不确定如何在循环中实现逆运算)。

任何帮助表示赞赏。

标签: matlab

解决方案


推荐阅读