Sum cumulative value from all files that is summoned in a loop
조회 수: 5 (최근 30일)
이전 댓글 표시
I want to add the row length of the variable 'time' in a file (length(dataset.time)) from multiple datasets that are summoned in a loop. My setup is a follows:
datafolder = ' Z:\Projects\data';
file = dir(datafolder);
for i = 3:105
patient = load(strcat(datafolder,'\',file(i).name));
dataset = patient.table
row_length = length(dataset.time)
sum_length = ?
For now, ' row_length' only outputs the number of rows from the last dataset.
How do I add the total number of rows from dataset 3:105?
Hope you can help
댓글 수: 2
Stephen23
2022년 4월 20일
편집: Stephen23
2022년 4월 20일
This line:
for i = 3:105
As Walter Roberson wrote in that last link: "In short: if your code assumes that '.' and '..' are the first two entries in a directory, your code has a bug (even in MS Windows). If your code assumes that directory entries are returned in any sorted order, your code has a bug (in all OS.)"
Much better code uses ISMEMBER or SETDIFF.
채택된 답변
Davide Masiello
2022년 4월 20일
Inside the loop write
row_length(i) = length(dataset.time);
After the loop, you can calculate the summ of all lengths with
sum_length = sum(row_length);
추가 답변 (1개)
David Hill
2022년 4월 20일
datafolder = ' Z:\Projects\data';
file = dir(datafolder);
row_length = 0;
for i = 3:105
patient = load(strcat(datafolder,'\',file(i).name));
dataset = patient.table
row_length = row_length+length(dataset.time)
end
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!