我在MAT文件中有一个大型结构。我想检查结构中是否存在特定字段而没有加载MAT文件,因为内容非常大,我想最小化内存使用。
这是可能的,还是我必须先加载它,如下例所示?:
load('test.mat'); %# Load the MAT-file
tf = isfield(s,'fieldname'); %# Check if structure s has field 'fieldname'
答案 0 :(得分:23)
要检查MAT文件的内容而不加载它,请使用:
vars = whos('-file','test.mat')
ismember('fieldname', {vars.name})
答案 1 :(得分:6)
据我所知,您必须加载该文件才能检查保存的结构是否包含特定字段。
但是,如果使用'-struct'
-option保存.mat文件,它会将字段拆分为.mat文件中的单独变量。您可以通过调用
myStructure = load('test.mat');
以这种方式保存还允许您使用@Amro的方法测试字段(变量)是否存在(比我之前建议的更清晰)。