How can I use fprintf to save a txt file with different size matrix ?
    조회 수: 8 (최근 30일)
  
       이전 댓글 표시
    
Hi,
I am using the following and works fine :
    saveAs = [fPath '\' fPrefix fmid '_' trialNo{4} '_FVL.txt']; 
    fid = fopen(saveAs, 'w');
    fprintf(fid, '%s\t %s\t %s\n', 'Time [s]', 'FL [mm]','EMG [v]');
    for v = 1: ufsize ; 
    fprintf(fid, '%d\t %d\t %d\n', Ultratimefinal0(v), lfascicle(v), EMG(v) );
    end
    fclose(fid);
The problem is when I am trying to cut some values from EMG ex. EMGc = EMG(16:end); then I am getting the "Index exceeds matrix dimensions" error. How can I save these different sized values ? I would like to have something like this:
    1 1
    1 1
    1 1
    1 1
    1
    1
    1
    1
And something else... how can I move the whole matrix in a specific row ? 
    1 
    1 
    1 1
    1 1
    1 1
    1 1
    1
    1
Thanks a lot.
댓글 수: 0
채택된 답변
  Christopher Berry
    
 2014년 8월 6일
        One way you might do this is to use if-else statements around your fprintf, like this:
 fprintf(fid, '%d\t', Ultratimefinal0(v));
 if ( v < numel(lfascicle) )
     fprintf(fid, '%d\t', lfascicle(v));
 else
     fprintf(fid, '\t');
 end
 if ( v < numel(EMG) )
     fprintf(fid, '%d\n', EMG(v));
 else
     fprintf(fid, '\n');
 end
This will accomplish the first case you showed... As for the second case, you could shift your whole column by using an offset in the EMG part like this:
 offset = 2; % Just like your example, but this could be anything
 if ( v>offset && ( v-offset) < numel(EMG) )
     fprintf(fid, '%d\n', EMG(v-offset));
 else
     fprintf(fid, '\n');
 end
추가 답변 (1개)
  Robert Cumming
      
 2014년 8월 6일
        you can loop over the column dimension of your variables when you write the file out, or before the write command check that each of your variables exist - if not customise the fprintf command.
You might also be interested in the function fullfile.
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!