MATLAB如何保存串口读入的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB如何保存串口读入的数据?相关的知识,希望对你有一定的参考价值。

大体做法如下:
1、配置好目的串口号,属性。比如波特率、校验位等。
2、编写串口读写调用函数,其中串口中有个中断机制。
比如s.BytesAvailableFcnMode
=
'terminator';
数据来了就会进入中断,此时你可读取串口数据。不需要通过timer去中。
3、读完关闭串口。
参考技术A 纠正一下你的错误:是RS232。
数据在command
window显示后,可以用save函数保存。
例如:
save
RS232Data.mat
变量名1
变量名2
如果没有变量名,例如:
ans
=
数据
数据
数据
则用:
save
ans
RS232Data.mat

matlab读入和保存obj文件

1、使用matlab读取obj文件:

function [vertex,faces,normal] = read_obj(filename)

fid = fopen(filename);
if fid<0
    error(['Cannot open ' filename '.']);
end

frewind(fid);
a = fscanf(fid,'%c',1);
if strcmp(a, 'P')
    fscanf(fid,'%f',5);
    n_points=fscanf(fid,'%i',1);
    vertex=fscanf(fid,'%f',[3,n_points]);
    normal=fscanf(fid,'%f',[3,n_points]);
    n_faces=fscanf(fid,'%i',1);
    fscanf(fid,'%i',5+n_faces);
    faces=fscanf(fid,'%i',[3,n_faces])'+1;
    fclose(fid);
    return;
end

frewind(fid);
vertex = [];
faces = [];
while 1
    s = fgetl(fid);
    if ~ischar(s), 
        break;
    end
    if ~isempty(s) && strcmp(s(1), 'f')
        % face
        faces(:,end+1) = sscanf(s(3:end), '%d %d %d');
    end
    if ~isempty(s) && strcmp(s(1), 'v')
        % vertex
        vertex(:,end+1) = sscanf(s(3:end), '%f %f %f');
    end
end
fclose(fid);

2、使用matlab保存obj文件:

function obj_write(filename,vertices,faces )
fid=fopen(filename,'w');  
[x,y]=size(vertices);  
 for i=1:x
    fprintf(fid,'v ');
    for j=1:y-1  
        fprintf(fid,'%f ',vertices(i,j));  
    end  
    fprintf(fid,'%f\\r\\n',vertices(i,y));%每一行回车\\n  
    %fprintf(fid,'\\n');%每一行回车\\n  
 end 

fprintf(fid,'\\n');%每一行回车\\n  

[x,y]=size(faces);  
  
 for i=1:x
    fprintf(fid,'f ');
    for j=1:y-1  
        fprintf(fid,'%d ',faces(i,j));  
    end  
    fprintf(fid,'%d\\r\\n',faces(i,y));%每一行回车\\n  
    %fprintf(fid,'\\n');%每一行回车\\n  
end   
fclose(fid);  
end

以上是关于MATLAB如何保存串口读入的数据?的主要内容,如果未能解决你的问题,请参考以下文章

matlab读串口数据问题

怎么用matlab读取串口数据?

MATLAB串口数据读取问题

MATLAB调用串口

怎样在matlab中读取串口

怎么把arduino接收数据清除掉