matlab实现数据的递增判断
使用到的函数.
文件选择函数 uigetfile
文件打开函数fopen
A = fread(fileID) 将打开的二进制文件中的数据读取到列向量 A 中,并将文件指针定位在文件结尾标记处。该二进制文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。读取文件后,请调用 fclose(fileID) 来关闭文件。
A = fread(fileID,sizeA) 将文件数据读取到维度为 sizeA 的数组 A 中,并将文件指针定位到最后读取的值之后。fread 按列顺序填充 A。
A = fread(fileID,sizeA,precision) 根据 precision 描述的格式和大小解释文件中的值。sizeA 参数为可选参数。
A = fread(fileID,sizeA,precision,skip) 在读取文件中的每个值之后将跳过 skip 指定的字节或位数。sizeA 参数为可选参数。
A = fread(fileID,sizeA,precision,skip,machinefmt) 另外指定在文件中读取字节或位时的顺序。sizeA 和 skip 参数是可选的。
[A,count] = fread(___) 还将返回 fread 读取到 A 中的字符数。您可以将此语法与前面语法中的任何输入参数结合使用。
文件读取函数fread
[data,count]=fread(fid,size,数据类型,跳过的字节数,字节读取顺序);
fid:句柄值(与第一步句柄值同名对应);
size:表示读取内容的大小;N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放);
数据类型:int16、int32、double、float等等
跳过的字节数:读取每个值之后要跳过的字节数,指定为标量。
字节读取顺序:
'n' 或 'native' | 系统字节排序方式(默认) |
'b' 或 'ieee-be' | Big-endian 排序 |
'l' 或 'ieee-le' | Little-endian 排序 |
's' 或 'ieee-be.l64' | Big-endian 排序,64 位长数据类型 |
'a' 或 'ieee-le.l64' | Little-endian 排序,64 位长数据类型 |
data:读取的数据
count:读取数据的实际数量
%递增数判断
close all;clc;
%%%%%%%%%%%%%%%%%%%%%%%
oldpath = cd;
if exist('newpath','var')trycd (newpath); end
end[filename, pathname] = uigetfile('*','multiselect','off');
newpath = pathname;
cd (oldpath);FID = fopen([pathname,filename]);
fseek(FID,0,'eof');
DataBitLen = ftell(FID);FrameLen = 33097152; %读取的文件数据长度
HeadLen = 0;
DataLen = (FrameLen - HeadLen);FrameNum = 1; %%总共读取的帧数,默认10帧data = zeros(FrameNum, DataLen);
data_sw= zeros(FrameNum, DataLen/2);
error= zeros(FrameNum, DataLen/2-1);
%% 读数
fseek(FID,0,'bof');
for i = 1:FrameNumfseek(FID,HeadLen,'cof');data(i,:) = fread(FID,DataLen,'uint32','l'); %小端模式读取数据 ,读取的长度为DataLen,32个字节代表一个数值
end
for j = 1:DataLen/2data_sw(1,j)=data(1,j*2-1); %取其中的奇数序号的数据
end
for m = 1:DataLen/2-1error(1,m)=data_sw(1,m+1)-data_sw(1,m); %判断前后数据的差值是否为1.
end
for m = 1:DataLen/2-1if error(1,m) ~=1fprintf('数据有误\n');fprintf('错误行数=%d\n',m);break;endif m == DataLen/2-1fprintf('数据无误\n');end
end
fprintf('数据校验完成')plot(error);% [data,DataLen]= fread(FID,inf,'uint32','l'); %小端模式读取数据 ,读取全部数据
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
