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