1

実際にすべてをロードせずに、テキスト ファイルの値を使用して新しい変数を作成するにはどうすればよいですか?

たとえば、2 つのテキスト ファイルがあります。1 つa**bc**d目は 18 行目に含まれています。2 つ目a**cf**dは同じ位置に含まれています。私が探している結果は次のとおりです。

bc 
cf
4

2 に答える 2

3

残念ながら、あなたの質問は言葉遣いが不十分ですが、例はあなたが達成したいことの手がかりを私に提供してくれました. 以下が役立つことを願っています:

行をスキップする

行をスキップするには、その結果を効果的に使用fgetlまたはfgets破棄できます。これにより、ファイルポインタが目的の行に進むだけです。単純化した例に関して、最初の 17 行をスキップして 18 行目を読みたい場合、次のようにします。

fid = fopen(somefile, 'r');
for i = 1:17
    fgetl(fid);
end
s = fgets(fid);

または、各行を同じ変数 (s私の例では) に読み込み、以前の値を上書きします。

fid = fopen(somefile, 'r');
for i = 1:18
    s = fgetl(fid);
end

これに対するさらに短い代替手段はtextscan'HeaderLines'オプションを使用することです。

C = textscan(fid, '%s', 1, 'Delimiter', '\n', 'HeaderLines', 17);
s = C{:};

文字列から部分文字列を抽出する

文字列は文字の配列 (ベクトル) であるため、ベクトル インデックスを使用して必要な要素を抽出できます。たとえば、 から位置 2 と 3 を抽出しs = 'abcd'て を取得するには、次のようbcに式 を使用できます。s([2 3])

result = s([2 3])
于 2012-10-29T19:10:12.360 に答える
1

あなたの質問を理解しているかどうかはわかりませんが、FSEEK と FGETL のドキュメントを参照してください。ブレット

于 2012-10-29T13:28:43.493 に答える