在Matlab中使用逗号分隔值的fscanf
通过序列号,我得到如下值 2320045000在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');
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')