1

次の形式のデータを含むファイルがあります。

filename.jpg,132,234,234,345,4555,23333,344,...,333

...私は整数の長いシーケンスを持っているという事実をマークするために置きました。各行に合計132個の整数があります。

132入力ファイルにあるのと同じ数の列と行を持つ行列の数値を読み取りたい。textscanこのデータを関数で読み取るにはどうすればよいですか?このタイプのフォーマットをどのように指定する必要がありますか?また、ファイル名の最初の列をセル配列に読み込みたいと思います。

セル配列には、次の構文を使用しました。

fid = fopen(inputPath);
buffer = textscan(fid, '%s%*[^\n]', 'Delimiter', ',');

close(fid);
4

1 に答える 1

2

代わりにtextscan、への最初の呼び出しに従うことができます。csvread

A = csvread('data.txt', 0, 1);

最後の2つのパラメーターは、データが開始する行と列を指定します。セルには最初の列の文字列が含まAれ、データを含む行列が含まれます。

それ以外の場合、本当にを使用する必要がある場合はtextscan、フォーマット文字列を脇に作成します。

fid = fopen('data.txt', 'r');
% crate a string with as many %f as you need
fmt = ['%s' repmat('%f', 1, 132)];
buffer = textscan(fid, fmt, 'Delimiter', ',');
names = buffer{1};
A = [buffer{2:end}];
fclose(fid);
于 2012-10-09T11:58:59.313 に答える