MATZEROFIX-显示如何恢复带有R14 FCS特定加载错误的MAT文件

修复因R14 FCS MATLAB 7.0保存的MAT文件中变量标记大小为零而导致的加载错误。
1.9K下载
已更新2016年9月1日

查看许可证

此工具旨在向您展示如何修复仅使用R14FCS MATLAB 7.0.0保存的v5 MAT文件,MATCAT工具确定变量标记中的大小为零。此工具不会修改MAT-File,除非您使用可选的第二个输入参数“fix”,在这种情况下,文件会自动修复,但仅适用于下面显示的第一种(最常见的)情况。
零尺寸标签问题有两个可能的原因:

(1) 最可能的原因是特定于MATLAB 7.0.0的,这种情况仅在少数情况下发生,并在R14sp1中修复,因此可以通过使用MATLAB 70.1或更高版本(R14spl或更高)来完全避免。如果这是MAT-File中零标记的原因,那么这个工具(matzerofix)可以向您展示如何自己修复它,也可以自动修复MAT-File。

这样一个零大小的标签变量的数据被正确保存,只有该变量的标签表示零数据字节(不正确),从而导致MATLAB无法加载该文件。通过在标记中设置正确的大小来修复MAT-File后,该文件将在MATLAB中正确加载。

(2) 另一个可能的原因是特定于MATLAB 7.0.0到7.0.4的,是由于在保存过程中跳过了一个变量。在这种情况下,MAT文件中会保存一个不应该存在的额外的8字节标记。这将在R14sp3中固定。此工具(matzerofix)无法解决此问题。

要修复这样的文件,必须将该文件复制到新文件中,不包括matzerofix指示的偏移量处的8字节标记。例如,如果您有一个200字节的MAT-File,其偏移量为128,则将字节0-127复制到新文件中,跳过字节128-135,然后继续使用字节136,直到文件结束。如果有更多这样的标记,您可能需要重复该过程,直到排除所有标记,然后它将在MATLAB中正确加载。

用法:

matzerofix mymatfile.mat
matzerofix('myatfile.mat')
matzerofix mymatfile.mat修复
matzerofix('myatfile.mat','fix')

您应该先下载MATCAT工具并诊断MAT-File
以确定是否需要对文件使用此(MATZEROFIX)工具。

样本输出:

>>matzerofix myfile.mat
字节128压缩var大小偏移量132数据字节82
字节218压缩变量大小偏移量222数据字节0<-不正确
按如下方式更正此值:
fid=fopen('myple.mat','r+','b');fseek(fid,222,“星期”);fwrite(fid,82,‘int32’);fc关闭(fid)
字节308压缩var大小偏移量312数据字节339
>>

引用为

约翰·阿斯皮纳尔(2024)。MATZEROFIX-显示如何恢复带有R14 FCS特定加载错误的MAT文件(https://www.mathworks.com/matlabcentral/fileexchange/7058-matzerofix-shows-you-how-to-recover-a-mat-file-with-an-r14-fcs-specific-load-error),MATLAB中央文件交换。恢复.

MATLAB版本兼容性
使用创建第14页
与任何版本兼容
平台兼容性
窗户 macOS操作系统 Linux操作系统
类别
在上查找更多信息工作空间变量和MAT-Files在里面帮助中心MATLAB答案

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!
版本 出版 发行说明
1.0.0.1版本

更新的许可证

1.0.0.0

文件上传不正确,导致行换行,某些字符以十六进制显示,从而导致代码无法运行