Increase execution speed of saving using matfile
    조회 수: 13 (최근 30일)
  
       이전 댓글 표시
    
I want to continously save data (in appdesigner if that is relevant), therefore I create a matfile object on startup and then append data using a timer:
"Main"
app.SavingObject = matfile(app.FileName,'Writable',true);
And in a timer:
app.SavingObject.Data(app.sizeMyVar(1)+1:app.sizeMyVar(1)+size(NewPoints,1),1:app.sizeMyVar(2)) = NewPoints;
This will append my Data in the correct way.
What bothers me, if profiling this, you will see, that 40% of the time is spent internally using "whos". Sure this can be adjusted by the amount of how much data is written per call (I write ~60k Values per call), but it somehow feels like a waste of time and the amount of data per call is kind of fixed in my setup.
Is there a way to increase the wrtiting speed?

댓글 수: 0
채택된 답변
  Jan
      
      
 2019년 2월 27일
        A MAT file can contain a set of variables and store the data in compressed form. Appending new data to an existing variable is expected to be slow. It would be much more efficient to use a binary file and export the data to the MAT file at the end of the process at once.
댓글 수: 0
추가 답변 (1개)
  Pritesh Parmar
 2025년 4월 15일
        
      편집: Pritesh Parmar
 2025년 4월 17일
  
      Hi Stefan,
I had the similar issue with MATLAB's "save -append" with updating variables with large dataset. Does the the following code work for you?: fastSaveUpdate - Efficiently update variables in MAT-file - File Exchange - MATLAB Central
Pritesh Parmar
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Data Import and Analysis에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!