1

私はMatlabでこれをやろうとしていますが、それはそれを示しています

fgets の使用中にエラーが発生しました。ファイル識別子が無効です。fopen を使用して、有効なファイル識別子を生成します。

誰でもこの問題を解決できますか? 前もって感謝します。

以下は私の構文です:

function [ ] = replaceStr(fidInFile, DIF(k), DIF(k+1))
for k = 1:100
    fidInFile = fopen(['Rasch' num2str(k) '.inp'],'r');
    fidOutFile = fopen(['Rasch' num2str(k+1) '.inp'],'w');
    nextLine= fgets(fidInFile);
    while nextLine >= 0   
        nextLine = strrep(nextLine,['DATA=DIF' num2str(k) '.dat'], ['DATA=DIF' num2str(k+1) '.dat']);
        fprintf(fidOutFile,'%s', nextLine);
        nextLine=fgets(fidInFile);
    end
    fclose(fidInFile);                         
    fclose(fidOutFile);                       
end
4

1 に答える 1

0

ファイルを読み込んで最初の行を変更し、書き戻すには、次のようにします。

% open files
fidIn = fopen('test.txt');
fidOut = fopen('test2.txt','w');

% read in file
tline = fgets(fidIn);
index = 1; 
while ischar(tline)
    data{index} = tline;     
    tline = fgets(fid);         
    index = index + 1;
end

% replace first row
data{1,1} = 'Something else';

% write to second file
for l = data
    fprintf(fidOut,'%s\n', l{1,1});
end

fclose(fidIn);
fclose(fidOut);

発生しているエラーは、使用しているファイル名またはパスが無効である可能性があります。

于 2013-03-21T16:37:09.797 に答える