gpt4 book ai didi

arrays - MATLAB 中的矩阵数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:48 24 4
gpt4 key购买 nike

我正在寻找一种方法来在 MATLAB 中的数组中存储大量可变数量的矩阵。

有什么方法可以实现吗?

例子:

for i: 1:unknown
myArray(i) = zeros(500,800);
end

如果数组的长度不同,我可以根据需要修改附加信息。

更新:性能是我试图实现这一目标的主要原因。我以前用过它,它会将数据抓取为单个矩阵,实时显示它,然后继续处理下一组数据。

我按照 Rocco 下面的建议尝试使用多维数组,但是我的数据太大以至于我用完了内存,我可能不得不为我的案例寻找另一种选择。当我尝试其他建议时会更新。

更新 2:谢谢大家的建议,但是我应该事先指定,精度和速度在这里都是不可或缺的因素,在尝试 3-d 数组并重新评估导入方法之前,我可能不得不考虑回到我原来的方法数据。

最佳答案

使用元胞数组。这比 3D 数组有一个优势,因为它不需要连续的内存空间来存储所有矩阵。事实上,每个矩阵都可以存储在内存中的不同空间中,如果您的可用内存碎片化,这将使您免于内存不足错误。以下是在元胞数组中创建矩阵的示例函数:

function result = createArrays(nArrays, arraySize)
result = cell(1, nArrays);
for i = 1 : nArrays
result{i} = zeros(arraySize);
end
end

使用方法:

myArray = createArrays(requiredNumberOfArrays, [500 800]);

并访问您的元素:

myArray{1}(2,3) = 10;

如果您无法提前知道矩阵的数量,您可以简单地使用 MATLAB 的动态索引来使数组尽可能大。性能开销将与 cell 数组的大小成正比,并且不受矩阵本身大小的影响。例如:

myArray{1} = zeros(500, 800);
if twoRequired, myArray{2} = zeros(500, 800); end

关于arrays - MATLAB 中的矩阵数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com