此工具旨在向您展示如何修复仅使用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
>>