Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 存储在单元阵列中会降低代码的速度,即使是预分配也是如此_Matlab_Matrix_Cell - Fatal编程技术网

Matlab 存储在单元阵列中会降低代码的速度,即使是预分配也是如此

Matlab 存储在单元阵列中会降低代码的速度,即使是预分配也是如此,matlab,matrix,cell,Matlab,Matrix,Cell,我有一个函数,它包含for循环。在这些循环中,我构造了一些矩阵,我称之为势,然后我将它们乘以另一个矩阵,我称之为源。由于我希望在只有源矩阵发生变化的for循环中使用此函数,因此我希望存储潜在矩阵以忽略for循环中的过度计算 我使用了一个3D单元阵列来存储电位矩阵,但这不仅仅是运行函数一次,我的意思是在不保存电位的情况下乘以源和电位。(存储而不存储的时间比存储而不存储的时间长) 我使用了预分配A=cell(N)。为什么会发生这种情况如果在所有迭代中输出大小相同,则考虑使用多维数组而不是单元格数组。

我有一个函数,它包含
for
循环。在这些循环中,我构造了一些矩阵,我称之为势,然后我将它们乘以另一个矩阵,我称之为源。由于我希望在只有源矩阵发生变化的
for
循环中使用此函数,因此我希望存储潜在矩阵以忽略
for
循环中的过度计算

我使用了一个3D单元阵列来存储电位矩阵,但这不仅仅是运行函数一次,我的意思是在不保存电位的情况下乘以源和电位。(存储而不存储的时间比存储而不存储的时间长)


我使用了预分配
A=cell(N)
。为什么会发生这种情况

如果在所有迭代中输出大小相同,则考虑使用多维数组而不是单元格数组。在将数据存储到单元格数组中时,在保存到单元格数组中之前执行尽可能多的计算,并在其中存储尽可能少的数据。@Divakar如果我可以将数据存储到5D数组中,它会比3D单元格数组?5D数字数组更好吗?我认为是的。@Divakar是的,5D数字数组,因为我不需要将每个矩阵存储到一个单元格中,而必须将其保存为matix。只要确保维度越高,索引的数量越少。因此,请相应地安排您的数据。