1

通过串行,我得到了像

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

如何将这些分成三列?

对于一列,例如:

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.fgetltextscan从设备读取一行文本,然后使用或任何其他类似的字符串函数解析字符串。

于 2013-04-19T10:27:15.367 回答
-1

那这个呢:

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