2

MATLAB スクリプトは初めてです。削除する文字列があります。文字列は配列構造化ファイルから取得されます。削除する文字列はループごとに異なります。その変化する文字列を変数に保存し、変数と を使用してその文字列を削除できますstrrepか? 例えば:

%% string i want to delete is "is_count_del=auto;"
delstrng=is_count_del_auto;
%%filetext is the name of the file from which is_count_del=auto; is to be deleted
r=strrep(filetext,'delstrng','');

私はstrrep正しく使用していないと思います。どうすれば望ましい結果を達成できますか?

4

2 に答える 2

1

私があなたを正しく理解していれば、次のことができます。

% open file to be filtered and output file
fin = fopen('file-to-be-filtered.txt');
fout = fopen('output-file.txt');

% for every line of a file-to-be-filtered ...
tline = fgets(fin);
while ischar(tline)
    % ... filter for all possible patterns        
    for delstring % -> delstring iterates over all patterns
        tline = strrep(tline, delstrng, '');
    end

    % save filtered line to file
    fprintf(fout, tline);

    % get next line
    tline = fgets(fin);
end
于 2012-12-17T19:43:07.090 に答える
1

strrepセル配列に適用できるため、作業が非常に簡単になります。

% # Read input file
C = textread('input.txt', '%s', 'delimiter', '\n');

% # Remove target string
C = strrep(C, 'is_count_del=auto', '');

% # Write output file
fid = fopen('output.txt', 'w');
for ii = 1:numel(C)
    fprintf(fid, '%s\r\n', C{ii});
end
fclose(fid)
于 2012-12-18T12:26:59.880 に答える