我正在编写一个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文件中预分配是否与执行文件在同一文件中一样高效?其他建议?
答案 0 :(得分:4)
是的。
答案 1 :(得分:0)
这是一种有效的方法,但您必须确保您的变量进入主函数的工作空间,即您应该设置preallocate.m,以便:
[a, b] = preallocate
当在main函数中调用它时,你的preallocations将被初始化。