欢迎来到天天文库
浏览记录
ID:34724068
大小:165.18 KB
页数:4页
时间:2019-03-10
《labview的读取二进制文件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、LabVIEW的读取二进制文件 “读取二进制文件”位于函数选板的“编程→文件I/O→读取二进制文件”,图标和接线端如图1所示。广告插播信息维库最新热卖芯片:LM2917N 73K222U-IH ADSP-21062LKS-160 CXA3185N AM29LV040B-90EC EPM3512AQC208-7 MUN5211T1 EPM7192EGC160-15 SN65LBC182P US3034 图1读取二进制文件图标和接线端 读取二进制文件从二进制文件读取数据,读取的数据类型取决于指定文件的格式,其中输
2、入和输出接线端说明如下。 datatype:数据类型,指定读取的数据类型,包括大小信息。 prompt(Openexistingfile):对话框窗口(打开现有文件),指定文件对话框上出现的提示信息。 file(usedialog):文件(使用对话框),指定文件引用旬柄或绝对路径(相对路径无效),如果没有输入,则弹出文件对话框来选择文件。 count:计数,指定从文件中读取的数据数。如果输入值为1,则读取整个文件;如果小于-1,则出错。 byteorder:字节顺序,指定读取的字节顺序。0表示网络顺序,在
3、MacOS或其他平台使用;1表示本地计算机顺序,速度快;2表示网络顺序,在Windows和Linux中使用。 refnumout:引用句柄输出,返回所读文件的文件引用句柄。 data:数据,从文件中读取的数据。cancelled:取消,如果文件对话框被取消,则返回值为真。matlab读取二进制数据文件的方法北京理工大学 20981 陈罡matlab可以直接读取二进制数据文件,并且可以将其加入到矩阵中。如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feo
4、f这些函数非常熟悉了,幸运的是在matlab中仍然可以使用这些函数来读入实验数据。现在假定有一个数据文件叫data.dat,它的前面2k是存放参数的,我们做数据处理的时候需要跳过去,后面的数据是16位整数类型的,每组数据有512个。现在要把该数据文件的所有数据读入一个nx512的矩阵中,n的个数不定,根据数据文件中的数据而定。 用.m脚本的方式编写如下:%dealdatafromspecifieddatafileclear;data_fname='data.dat';%这里是文件名jump_distance=2048
5、; %这里是跳过的字节数%打开方式为二进制打开,其实'r'就行,matlab是默认二进制形式打开文件的file_id=fopen(data_fname,'rb');%从文件开始跳过jump_distance个字节fseek(file_id,jump_distance,'bof');%先手工构造一个1x512大小的矩阵raw_data=[1:1:512];whilefeof(file_id)==0 %这就是大名顶顶的fread了,数据类型是int16,每次读入512个数 %raw_array每次都是512
6、x1的矩阵,ele_count为读入的数的个数(正常情况下应为512) [row_array,ele_count]=fread(file_id,512,'int16'); ifele_count<512 %elecount<512代表数据不够,已经到了文件的结尾 break; else %将512x1的row_array转置一下,变为1x512的矩阵 row_array=row_array' ; %然后,将row_array追加到raw_data中
7、 raw_data=[raw_data;row_array]; endend%getoffthefirstline[1:1:512]%这里就是要把raw_data的第一行数据手工构造的那行数据给去掉,剩下的就都是文件中的数据了raw_data(1,:)=[];%关闭文件fclose(file_id);%deleteotheruslessvars%这里是把用过的变量都删除掉,免得workspace里面乱七八糟的什么都有,这是个好习惯,呵呵。cleardata_fnamejump_distancefile_id
8、fidele_countimnrow_arrayans; 好了,得到这些数据以后,就可以做一些常规的数据处理了。其它算法部分,就不多说了让人乏味。贴几张图show一下,matlab真的是挺强大的事后数据分析、建模软件啊。(这是原始数据中,一组数据)
此文档下载收益归作者所有