一、概述
今天写这篇文章的目的在于最近遇到了需要使用Matlab读写文件,来分析FPGA使用高速ADC采集数据的 频谱 。之前没有怎么用过Matlab,更对文件操作不熟悉。临时抱佛脚学习了下Matlab,特此记录下以免以后遗忘了。
二、代码分析
在Matlab里要操作文件,需要实例化一个文件句柄,调用函数fopen();
fp = fopen(filename, permission);
该函数有两个参数,filename是文件名,permission参数是文件访问 类 型。具体的参数可以到官网参看(https://ww2.mathworks.cn/help/matlab/ref/fopen.html)。
实例化了文件句柄以后,可以对文件经行读写操作了。对文件写操作需要调用fwrite()函数;
fwrite(filename, A, precision);
fwrite()函数具有三个参数,filename 是文件名称, A是写入的值, precision为写入的形式(可以实int,char等类型)。详情见https://ww2.mathworks.cn/help/matlab/ref/fwrite.html。
对文件读操作调用fread()函数;
fread(filename, sizeA, precision);
fread()可包含三个参数,filename:文件名,sizeA:读取数据个数,precision:数据形式。详情见官网https://ww2.mathworks.cn/help/matlab/ref/fread.html。
对文件操作完成后需要释放文件句柄,调用fclose()即可。
三、详细代码
clear all;clc; filename = 'https://www.gofarlic.com\work\Matlab\fft_test\test_d.bin'; %向bin文件写入100个数,初始化datadata = zeros(1,100); %datafor k = 1:98 data(1, k) = k;end data(1,99) = -100; %第99个数写入-100data(1, 100) = -10; s = int16(data); fp = fopen(filename, 'wb'); fwrite(fp, s, 'int16');fclose(fp); fp = fopen(filename, 'rb'); b = zeros(16,1); b = fread(fp, 100,'int16'); fclose(fp);
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删