1

シリアル経由で、次のような値を取得しています

23,2004,5000
24,5005,5060
25,6789,8907

これらを 3 つの列に分割するにはどうすればよいですか?

1 つの列の場合、例:

25
24
26

私はただすることができます

clc;clear all;close all;
arduino=serial('COM4','BaudRate',9600);
fopen(arduino);
tic;
i=0;
while toc<120;
    i = i+1;
    time(i)= toc;
    v(i)=fscanf(arduino,'%d');
    plot(time,v,'r');
    pause(.10);
end
fclose(arduino)

すべてのデータを v に保存します。このコードを 3 列に適合させるにはどうすればよいですか?

4

2 に答える 2

1

シリアルポートに何も接続されていないので、これをテストすることはできませんが、ループ内で試してください:

str = fgetl(arduino);
num = textscan(str, '%f', 'Delimiter',','); num = num{1};
%# `num` should be a 3x1 vector of numbers

最初にserial.fgetlを使用してデバイスからテキスト行を読み取り、次にtextscanまたはその他の同様の文字列関数を使用して文字列を解析します。

于 2013-04-19T10:27:15.367 に答える
-1

これはどうですか:

 A = cell2mat(textscan(arduino,'%d,%d,%d'))
于 2013-04-19T09:46:13.797 に答える