Matlab中函数fopen、fread、fseek和fwrite的用法

1.fopen():打开文件或获取关于打开文件的信息,下面以使用最多的情况为例:

fileID = fopen(filename,permission):打开文件,成功时,返回一个大于或等于3的整数文件标识符;

filename:将要被打开文件的本地路径;

permission:指定对打开文件的访问权限类型;

例如:fid = fopen(‘E:\star.yuv’,‘wr’),以读写的方式打开E盘下的star.yuv文件;

2.fread():从二进制文件中读取数据,下面以参数最多时为例:

A = fread(fileID,sizeA,precision,skip,machinefmt):从打开的二进制文件中读取数据到A中,按列的方式填充A;

fileID:文件标识符;

sizeA:输出数组A的维数;

precision:指定要读取数据的类型;

skip:指定需要调过的字节数,默认为0;

machinefmt:待读取数据字节的排列方式;

参考来源:https://blog.csdn.net/meizan3603/article/details/67632131

例如:A = fread(fid,[720 576],'uchar');

3.fseek():移动到文件中的指定位置;

fseek(fileID, offset, origin)

offset:指定偏移的字节数;

origin:从指定的位置开始偏移;‘bof’,表示文件头;‘cof’,表示当前位置;‘eof’,表示文件尾;

例如:fseek(fid,576*720,'cof'):从当前位置偏移576*720字节,到达文件指定文字;

4.fwrite():将数据写入二进制文件;

fwrite(fileID,A,precision)

例如:fwrite(fid,[720 576],'unchar');

5.fclose():关闭文件;

fclose(fileID)

例如:fclose(fid);

MATLAB中,fwrite函数用于将数据以二进制形式写入文件。它的用法如下: fwrite(fileID, A, precision, skip, machinefmt) 其中,各个参数的含义如下: - fileID:表示文件标识符,即通过fopen函数打开的文件的标识符。你可以使用fid = fopen('filename', 'w')来打开一个文件,并将其赋值给fileID变量。 - A:表示要写入文件的数据。可以是向量、矩阵或多维数组。 - precision:表示写入文件时的精度。它可以是以下之一: - 'uint8':无符号8位整数 - 'int8':有符号8位整数 - 'uint16':无符号16位整数 - 'int16':有符号16位整数 - 'uint32':无符号32位整数 - 'int32':有符号32位整数 - 'single':单精度浮点数 - 'double':双精度浮点数 - skip(可选):表示跳过的元素数目,默认为0。你可以使用该参数来指定从数据的特定位置开始写入文件。 - machinefmt(可选):表示写入文件时使用的机器格式,默认为本地机器格式。你可以使用'native'、'ieee-le'(小端存储)或'ieee-be'(大端存储)来指定机器格式。 举个例子,如果你想将一个双精度矩阵A写入一个名为'output.bin'的文件中,可以使用以下代码: fileID = fopen('output.bin', 'w'); fwrite(fileID, A, 'double'); fclose(fileID); 以上代码首先使用fopen函数创建一个文件标识符fileID,然后使用fwrite函数将矩阵A以双精度的形式写入文件中,最后使用fclose函数关闭文件。 请注意,fwrite函数会按列的方式填充数据,这与fread函数中的默认行填充方式不同。如果你想将数据按行填充,请先对数据进行转置,然后再使用fwrite函数。 希望这样的解答对你有帮助。如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值