該場景是我需要從幾個.mat文件加載數據,它是結構數組的形式,並將它們合併爲一個單一的數組以供後續處理。最初,我所做的就是這樣的:在MATLAB中,如果我需要更改每個循環的結構數組大小,如何提高效率?
raw_data = [];
for i=1:length(file_name_list)
raw_data = [raw_data importdata(file_name_list(i))];
end
然後MATLAB警告我說:
The variable 'raw_data' appears to change size on every loop iteration. Consider preallocating for speed.
如果我理解正確的,附加到數組時,MATLAB將重新分配一些空間,所有的原始元素複製到新的地方,所以它可能需要很長的時間。但問題是,我不知道有多少結構將在文件中,我不知道每個結構的大小。有沒有辦法加快這個過程?它已經花費5秒鐘來完成總共600個結構的2個文件(這非常慢)。
謝謝你的幫助!
您可能需要看看http://www.mathworks.com/help/matlab/matlab_prog/techniques-for-improving-performance.html – CroCo