在Matlab中使用逗号分隔值的fscanf

在Matlab中使用逗号分隔值的fscanf,matlab,file-io,serial-port,scanf,Matlab,File Io,Serial Port,Scanf,通过序列号,我得到如下值 2320045000 2450055060 25678907 如何将这些内容分为三列 对于一列,例如: 25 24 二十六 我能做到 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');

通过序列号,我得到如下值

2320045000
2450055060
25678907

如何将这些内容分为三列

对于一列,例如:

25
24
二十六

我能做到

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)
clc;清除所有;全部关闭;
arduino=串行('COM4','BaudRate',9600);
福彭(阿杜伊诺);
抽搐;
i=0;
而toc这个呢:

 A = cell2mat(textscan(arduino,'%d,%d,%d'))

我没有任何东西连接到串行端口,因此我无法对此进行测试,但在循环中尝试:

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

首先使用从设备读取一行文本,然后使用
textscan
或任何其他类似的字符串函数解析字符串。

一种方法是使用
strtok
str2num
arduino
是一个
串行
对象,我认为这个类没有
textscan
方法。您可能需要先阅读整行内容,然后在字符串上使用
textscan
,或者只需:
fscanf(arduino,'%d,%d')