Matlab:可以将大量预分配放在另一个文件中吗?

Matlab: Can a large number of preallocations be placed in another file?

我正在编写一个 matlab 代码,其中有很多变量需要预先分配(每个变量都是 8760x1 双精度)。这些值在 for 循环中生成:

a=zeros(8760,1);
b=zeros(8760,1);
(...)
for i=1:8760
a(i)=[some code];
b(i)=[some code];
(...)
end

但是,看到我有很多这些变量,我想在另一个文件中预分配参数(更干净)。

preallocate.m

a=zeros(8760,1);
b=zeros(8760,1);
...

main.m

preallocate
for i=1:8760
a(i)=[some code];
b(i)=[some code];
(...)
end

在另一个 matlab 文件中进行预分配是否与在与执行文件相同的文件中进行预分配一样高效?其他建议?

是的。

这是一种有效的方法,但您必须确保您的变量进入主函数的工作区,即您应该设置 preallocate.m 这样:

[a, b] = preallocate

这样当在主函数中调用它时,您的预分配将被初始化。