MATLAB笔记:打开数据文件的三种方法+读取数据文件的两种方法+保存数据文件的两种方法 您所在的位置:网站首页 打开data文件打开 MATLAB笔记:打开数据文件的三种方法+读取数据文件的两种方法+保存数据文件的两种方法

MATLAB笔记:打开数据文件的三种方法+读取数据文件的两种方法+保存数据文件的两种方法

2023-08-10 16:51| 来源: 网络整理| 查看: 265

1、打开数据文件 1.1 直接打开文件 PATHNAME = 'C:\Users\s55\Desktop\dat'; FILENAME = '\data_1.dat'; str0=strcat(PATHNAME,FILENAME); %或者str0=fullfile(PATHNAME,FILENAME); 然后用fread或者memmapfile打开 1.2 弹出窗口选择文件 [FILENAME, PATHNAME] = uigetfile('C:\Users\s55\Desktop\dat\*.dat', '打开数据文件'); %选择文件 str0=strcat(PATHNAME,FILENAME); 1.3 批量处理文件夹中的文件 PATHNAME = 'C:\Users\s55\Desktop\dat'; files = dir(strcat([PATHNAME '\' ],'*.dat')); for filenum = 1:length(files) FILENAME=files(filenum).name; str0=strcat(PATHNAME, '\',FILENAME); ...... end 2、 读取数据文件 2.1 用memmapfile读取数据文件

其中,read_length_start是读取文件的起始位置(按字节数),[read_length,1]是读取的文件size

PATHNAME = 'C:\Users\s55\Desktop\dat'; FILENAME = '\data_1.dat'; str0=strcat(PATHNAME,FILENAME); a0 = memmapfile(str0,... 'Offset', read_length_start - 1 ,... 'Format',{'int16',[read_length,1],'x'},'repeat',1); rdm_data = a0.Data.x;

memmapfile功能及输入参数详解:

m = memmapfile(filename) 将现有文件 filename 映射至内存,并返回内存映射 m。

在这里插入图片描述

2.2 用fread读取文件 PATHNAME = 'C:\Users\s55\Desktop\dat'; FILENAME = '\data_1.dat'; str0=strcat(PATHNAME,FILENAME); fid = fopen(str0,'r'); % 使用 fread 读取文件之前,必须用 fopen 打开文件并获取 fileID

fread功能及输入参数详解:

A = fread(fileID,sizeA,precision,skip,machinefmt) [A,count] = fread(___) 还将返回 fread 读取到 A 中的字符数。

在这里插入图片描述

利用fread读取数据文件时的注意事项:

[tempdata,cnt]=fread(fid,4,'uint8'); [tempdata2,cnt2]= fread(fid, HEAD); [tempdata3,cnt3]= fread(fid,length/2,'int16','ieee-be'); %[tempdata2,cnt2]= uint8(fread(fid, HEAD)); %[tempdata3,cnt3]= int16(fread(fid,length/2,'int16','ieee-be'));

fid是文件标识符,这三行代码的意思是, 读取列向量维度为4、源数据类型为uint8的数据,即tempdata 接在后面,读取列向量维度为HEAD、源数据类型为uint8、输出类型为double的数据,即tempdata2 接在后面,读取列向量维度为length/2、源数据类型为int16、输出类型为double、字节顺序为大端序的数据,即tempdata3

3、保存数据 3.1 用save保存数据 frame_filename = strcat([ 'frame',num2str(numframe),'.mat']); save(strcat([PATHNAME,'\frame\',frame_filename]),'dataADC', 'dataCAM', 'type', '-v6'); %存储在PATHNAME\frame中的文件,名为frame_filename,包含多个内容,包含dataADC、dataCAM、type save(strcat([PATHNAME,'\frame\',frame_filename])); %将workspace的所有值都保存到指定路径,名字为frame_filename 3.2 用fwrite保存数据 fwrite(fileID,A) 将数组 A 的元素按列顺序以 8 位无符号整数的形式写入一个二进制文件。 该二进制文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。 完成写入后,请调用 fclose(fileID) 来关闭文件。 示例 fwrite(fileID,A,precision) 按照 precision 说明的形式和大小写入 A 中的值。

fwrite 将随机的双精度数值写入名称为 myfile.bin 的文件,以便在 big-endian 系统上使用。

fileID = fopen('strcat([PATHNAME,frame_filename])','w'); fwrite(fileID,rand(4),'double','ieee-be'); fclose(fileID);


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有