了解如何在matlab中读取和写入二进制文件的不同格式

时间:2016-08-12 02:33:39

标签: matlab file binary

我试图理解如何在matlab中阅读和编写多种类型,但我真的不知道哪里出错了。

例如,我想说我想写一个字符串和一个双重文件。

my_string='hello world';
my_double=4.45;

fid=fopen('test.bin','wb');
fwrite(fid,my_string,'char');
fwrite(fid,my_double,'double');
fclose(fid);

现在我想读回那个字符串并加倍。我看到的第一种方法是建议将整个文件加载到字节数组中并一次读取块。但是,这样做并没有给我带来任何好处。

fid=fopen('test.bin','rb');
my_data=fread(fid);
    my_data=[]

my_data只是一个空白数组。

我尝试的另一件事是读取大小的数据。

my_data=fread(fid2,size(my_string),'char')
    my_data=[]

这也给了我一个空白数组。即使以整数形式阅读它也不会起作用。

那么如何编写混合类型以便稍后回读呢?

1 个答案:

答案 0 :(得分:1)

首先,像你一样写作:

my_string='hello world';
my_double=4.45;

fid=fopen('doubletest.bin','wb');
fwrite(fid,my_string,'char');
fwrite(fid,my_double,'double');
fclose(fid);

然后读取char和double

fid2=fopen('doubletest.bin','rb');
my_data=fread(fid2,size(my_string),'*char');
my_data
my_data=fread(fid2,size(my_double),'*double');
my_data
% my_data=fread(fid2);
% my_data

输出

my_data =

hello world


my_data =

    4.4500