13

我在 MAT 文件中有一个很大的结构。我想在不加载 MAT 文件的情况下检查结构中是否存在特定字段,因为内容非常大,我想尽量减少内存使用。

这是可能的,还是我必须像下面的例子一样先加载它?:

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

2 回答 2

23

要在不加载 MAT 文件的情况下检查它的内容,请使用:

vars = whos('-file','test.mat')
ismember('fieldname', {vars.name})
于 2010-10-26T18:32:11.327 回答
6

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

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

myStructure = load('test.mat');

以这种方式保存还允许您使用@Amro的方法(这比我之前建议的要干净得多)来测试字段(变量)是否存在。

于 2010-10-26T18:25:12.140 回答