我有大量的.bin文件(10GB60GB),我想要导入到MATLAB;每个二进制文件表示两个传感器的输出,因此数据列太多了。这是一个更易于管理的数据示例。
您会注意到有一个.txt版本的数据;我需要将.bin文件直接上传到MATLAB,我不能使用.txt版本,因为与更大的文件进行转换需要几个小时。
我遇到的问题是,.bin文件的头信息似乎无法正确解释,因此,每次尝试时,我都无法提取MATLAB中的数据,因为我似乎得到了一些乱七八糟的值。
以下是有关二进制标题的所有信息:
任何帮助/建议都将不胜感激,我已经试图解决这个问题好几天了。
有人已经编写了一个函数来解决这个问题,但是它似乎不适用于我的二进制数据(可能与我的数据的尺寸/大小有关):http://www.mathworks.co.uk/matlabcentral/fileexchange/27195-load-labview-binary-data
下面是我用来导入数据的代码,我相信d1和d2是二进制数据的维度。对于dropbox中的示例文件,D2可能是不正确的,因为它已经被截断。我遇到的问题是,代码提取了我的数据,并且我知道它是正确的,因为我可以用.txt文件(也在拖放框中)检查它,但是在好的数据点之间有一些随机的坏值。这些坏值来自以下字符串:"NI_ChannelName“、"Sensor”、"Sensor“、"NI_UnitDescription”和"Volts“,它们散落在二进制文件中。
clear all
clc
fname = 'RTL5_57.bin';
fid = fopen(fname,'r','ieee-be');
d1 = fread(fid,4);
trash=fread(fid,2,'double');
d2 = fread(fid,4);
trash=fread(fid,1,'double');
data=fread(fid,'double');发布于 2014-01-24 23:32:02
我想你需要改变数据格式。见Matlab帮助。
发布于 2015-08-06 20:03:28
https://decibel.ni.com/content/docs/DOC-39038
范围:
1)用matlab编写二进制文件,读入labview。2)用labview编写二进制文件,并读入matlab。
背景:
重要信息:
在读取数据之前,必须了解(3)文件中的二进制数据:
1)使用什么二进制格式(精度)来存储数据
2)要读取的文件中的确切值数。
3)二进制文件中没有行或列。想象一下需要映射到2D数组的长行/或长列。
二进制格式的数据资源。
https://stackoverflow.com/questions/21318855
复制相似问题