0

シリアル ポートを介して、次のように X、Y、Z のデータをテキスト ファイルで取得しています。

X195Y207Z247
X195Y209Z248
X193Y207Z248
X195Y207Z248
X194Y207Z235
X193Y209Z248
X193Y220Z247
X193Y217Z237
X193Y220Z248
X193Y223Z248
X193Y227Z238
X193Y231Z248

すなわち

X=195、Y=207、Z=247

等々...

このデータを X、Y、Z の 3 つのベクトルに読み取るための MATLAB スクリプトを作成したいと考えています。CSV ファイルについて
も同様の質問がありますが、私の場合、データはカンマ区切りではありません。

どうすればいいですか?

4

2 に答える 2

4

試す:

fid = fopen('data.dat','rt');
C = textscan(fid, '%*c %f %*c %f %*c %f', 'Delimiter','\n');
fclose(fid);

[X,Y,Z] = deal(C{:});

結果:

>> [X Y Z]
ans =
   195   207   247
   195   209   248
   193   207   248
   195   207   248
   194   207   235
   193   209   248
   193   220   247
   193   217   237
   193   220   248
   193   223   248
   193   227   238
   193   231   248
于 2013-02-08T12:29:04.820 に答える
0
values = sscanf(str2,'%*c%f%*c%f%*c%f',[1 Inf])

X = values(1)等々...

于 2013-02-08T12:30:30.307 に答える