MATLAB循环处理CSV文件时,如何将25个ETotal存入25×1矩阵?
解决MATLAB循环存储Etotal到25×1矩阵的问题
没问题,这事儿很简单,只需要在循环开始前先初始化一个对应大小的空向量(矩阵),然后每次循环把计算好的Etotal存入对应的索引位置就行。我给你调整后的完整代码,带详细注释:
files_in_this_folder = dir('*.csv'); number_of_files = length(files_in_this_folder); % 初始化一个number_of_files行1列的零矩阵,用来存储每个文件的Etotal Etotal_matrix = zeros(number_of_files, 1); for index = 1:number_of_files filename = files_in_this_folder(index).name; A = readtable(filename); % convert data to matrix T = table2array(A); % cumulatively sum the daily energy consumption values y0 = T(:,3); y = cumsum(y0); Etotal = max(y); % 将当前文件的Etotal存入矩阵的第index行 Etotal_matrix(index) = Etotal; end % 循环结束后,Etotal_matrix就是你要的25×1矩阵(如果确实是25个文件的话)
关键说明:
- 用
zeros(number_of_files, 1)初始化矩阵是最稳妥的方式,不管实际文件数量是25还是其他数值,代码都能自适应,不用硬写25。当然如果你确定一定是25个文件,写成zeros(25,1)也没问题。 - 每次循环里通过
index变量定位到矩阵的对应行,把计算结果赋值进去,循环结束后就得到所有文件的Etotal汇总矩阵了。
内容的提问来源于stack exchange,提问作者mg17461
相关产品推荐
相关产品推荐

