3

次の 2 つのステートメントは、入力ファイル ( fid) から最初の行を読み取り、その行を空白で区切られた文字列に解析します。

a = textscan(fid,'%s',1,'Delimiter','\n');
b = textscan(a{1}{1},'%s');

このアクションが、次のような形式の 1 つのステートメントで実行できるかどうかを知りたいです (これは構文的に無効です)。

b = textscan(textscan(fid,'%s',1,'Delimiter','\n'),'%s');

ありがとう。

4

1 に答える 1

2

それ以外の

a = textscan(fid, '%s', 1, 'Delimiter', '\n');

あなたが使用することができます

a = fgetl(fid);

これにより、次の行が文字列として返さfidれます(最後の改行文字が削除されます)。次に、次のように、その行を空白で区切られたチャンクに分割できます。

b = regexp(a, '\s*', 'split');

組み合わせ:

b = regexp(fgetl(fid), '\s*', 'split');

textscanを使用すると別のセルレイヤー(ファイル内の異なる行を表す)が追加されるため、これはコードと100%同等ではないことに注意してください。それは問題ではありませんが、単に使用してください

b = {regexp(fgetl(fid), '\s*', 'split')};

その余分な細胞層が必要な場合。

于 2012-01-24T10:40:16.173 に答える