搜索
bottom↓
回复: 2

VisualScope中 mat后缀的数据用maltlab读取画线的方法

[复制链接]

出95入100汤圆

发表于 2020-8-7 19:14:21 | 显示全部楼层 |阅读模式
VisualScope是一款很好用的串口示波器。单片机调试的时候很好用。但是他保存的数据是.mdt格式的。 用matllab导入数据功能得到的是乱码。经过摸索后发现是可以用matlab语言去读取的。读写的过车个如下

myarrary=[];mych1=[];mych2=[];mych3=[];mych4=[];
%输入文件绝对路径,可以点击mdt文件,然后右键属性,拷贝路径,再加上文件名(包含拓展名)
mypath='C:\Users\Administrator\Desktop\111.mdt';%把路径改成你的数据路径即可
fileid=fopen(mypath)%返回文件句柄
myarrary=fread(fileid,'int');%以int类型读取数据
fclose(fileid);
% length(myarrary)
disp('已经开始读取数据,时间较长,请耐心等待...')
for u=1 :round( length(myarrary)/4)
  figure(1);%ch1
mych1(u,1)=myarrary(u,1)/65537;  
end
plot(mych1);
hold on;
disp('已经读取完第一通道数据请耐心等待...')
for u=round(length(myarrary)/4):round(length(myarrary)/2)
  figure(2);%ch2
mych2(u,1)=myarrary(u,1)/65537;
end
plot(mych2);
hold on;
disp('已经读取完第二通道数据请耐心等待...')
for u=round(length(myarrary)/2):round(3*length(myarrary)/4)
  figure(3);%ch3
mych3(u,1)=myarrary(u,1)/65537;  
end
plot(mych3);
hold on;
disp('已经读取完第三通道数据请耐心等待...')
for u=round(3*length(myarrary)/4):round(length(myarrary))
  figure(4);%ch4
mych4(u,1)=myarrary(u,1)/65537;  
end
plot(mych4);
hold on;
disp('已经读取完第四通道数据')
%@smg copyright

出95入100汤圆

 楼主| 发表于 2020-8-10 19:53:49 | 显示全部楼层

修改完成后如下
fid = fopen('0000.dat', 'r');           %open data
length = fread(fid, 1,'uint32')/8;       %uint 32-bit data length    总的数据长度
Ch1Data = fread(fid, 16, 'int16'); %read ch1 data  抛掉16个数据
Ch1Data = fread(fid, length-16, 'int16'); %read ch1 data  读取有用的数据
Ch2Data = fread(fid, 16, 'int16'); %read ch1 data   抛掉16个数据
Ch2Data = fread(fid, length-16, 'int16'); %read ch2 data 读取有用的数据
Ch3Data = fread(fid, 16, 'int16'); %read ch1 data   抛掉16个数据
Ch3Data = fread(fid, length-16, 'int16'); %read ch3 data  读取有用的数据
Ch4Data = fread(fid, 16, 'int16'); %read ch1 data   抛掉16个数据
Ch4Data = fread(fid, length-16, 'int16'); %read ch4 data  读取有用的数据
fclose('all')                          %close all files
figure(1);  %创建窗口1
plot(Ch1Data);%画曲线
figure(2);
plot(Ch2Data);
figure(3);
plot(Ch3Data);
figure(4);
plot(Ch4Data);
CH1mean=mean(Ch1Data(:));
CH2mean=mean(Ch2Data(:));
CH3mean=mean(Ch3Data(:));
CH4mean=mean(Ch4Data(:));

出0入0汤圆

发表于 2022-7-4 11:34:03 | 显示全部楼层
mark                  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 22:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表