如何在不加载的情况下在MATLAB中检查MAT文件的内容?

时间:2010-10-26 18:19:44

标签: matlab struct mat-file

我在MAT文件中有一个大型结构。我想检查结构中是否存在特定字段而没有加载MAT文件,因为内容非常大,我想最小化内存使用。

这是可能的,还是我必须先加载它,如下例所示?:

load('test.mat');             %# Load the MAT-file
tf = isfield(s,'fieldname');  %# Check if structure s has field 'fieldname'

2 个答案:

答案 0 :(得分:23)

要检查MAT文件的内容而不加载它,请使用:

vars = whos('-file','test.mat')
ismember('fieldname', {vars.name})

答案 1 :(得分:6)

据我所知,您必须加载该文件才能检查保存的结构是否包含特定字段。

但是,如果使用'-struct'-option保存.mat文件,它会将字段拆分为.mat文件中的单独变量。您可以通过调用

重新创建结构
myStructure = load('test.mat');

以这种方式保存还允许您使用@Amro的方法测试字段(变量)是否存在(比我之前建议的更清晰)。