Sum cumulative value from all files that is summoned in a loop

조회 수: 5 (최근 30일)
SRRellum
SRRellum 2022년 4월 20일
댓글: SRRellum 2022년 4월 20일
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
Stephen23 2022년 4월 20일
편집: Stephen23 2022년 4월 20일
SRRellum
SRRellum 2022년 4월 20일
Thanks, good point. This was indeed the easy way out. I will change it

댓글을 달려면 로그인하십시오.

채택된 답변

Davide Masiello
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
SRRellum
SRRellum 2022년 4월 20일
Thanks for yout help. It works, however it gives the message to consider preallocating. Will look into that.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

David Hill
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
  댓글 수: 1
Stephen23
Stephen23 2022년 4월 20일
편집: Stephen23 2022년 4월 20일
Fragile/buggy code:
for i = 3:105
Lets try it with some simple, perfectly valid filenames:
csvwrite('+new.txt',1)
csvwrite('-old.txt',1)
csvwrite('test.txt',1)
dir()
+new.txt -old.txt . .. test.txt
Fragile at best, buggy at worst.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by