0

編集3

やあ!マトリックスの寸法に問題がありましたが、解決しました。ここでの私の問題は、同じフォルダーにある多数のファイルに対して同じ操作を実行し、text.txtの別の行に出力値を書き込みたいということです。最初のものでは機能しますが、残りは「テキスト」に「書き込み」ません。何か問題がありますか?

myPath = 'C:\EX\'; 
a= dir (fullfile(myPath,'*.DIM')); 
fileNames = { a.name };

% Rename files
for k = 1:length(fileNames)
     newFileName = [fileNames{k}(1:2) fileNames{k}(4:6) '.txt']; 
     movefile([myPath fileNames{k}], [myPath newFileName]);
end

 filePattern=fullfile( myPath,'*.txt');
 txtFiles= dir(filePattern);    
   for k = 1:length(txtFiles)
    baseFileName=txtFiles(k).name;
    fullFileName= fullfile(myPath,baseFileName);
    fid=fopen(fullFileName, 'r');
    for i = 1:18
        m{i} = fgetl(fid);
    end
    result2 = m{18};
    result2b= result2([12:19]);

    fid=fopen(fullFileName, 'r');
    for i = 1:30
    m{i} = fgetl(fid);
    end
    result3 = m{30};
    result3b= result3([12:19]);

    fid=fopen(fullFileName, 'r');
    for i = 1:31
    m{i} = fgetl(fid);
    end
    result4 = m{31};
    result4b= result4([12:20]);

    fid=fopen(fullFileName, 'r');
    for i = 1:19
    m{i} = fgetl(fid);
    end
    result5 = m{19};
    result5b= result5([12:20]);

  text= {baseFileName, result2b, result3b, result4b, result5b};
    final= [Fields'; text];

       end

よろしくお願いします!

4

1 に答える 1

0

インデックスがディメンションを超えるということは、まさにそれが意味することです。

ブレークポイントが発生する行にブレークポイントを設定し、result2のディメンションを確認してください。それがベクトルであると仮定すると、その長さは19未満であることがわかります。

于 2012-10-31T10:19:25.583 に答える