Как я могу проверить содержимое MAT-файла в MATLAB без его загрузки?

У меня большая структура в MAT-файле. Я хочу проверить, присутствует ли определенное поле в структуре без загрузка MAT-файла, так как содержимое очень большое, и я хочу свести к минимуму использование памяти.

возможно ли это, или я должен сначала загрузить его, как в следующем примере?:

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

2 ответов


чтобы проверить содержимое файла MAT без его загрузки, используйте:

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

насколько я знаю, вы должны загрузить файл, чтобы иметь возможность проверить, содержит ли сохраненная структура определенное поле.

однако, если вы сохраните .mat файл с '-struct' - option, он разбивает поля на отдельные переменные .файл мат. Вы можете воссоздать структуру, вызвав

myStructure = load('test.mat');

сохранение таким образом также позволяет проверить, существует ли поле (переменная) с помощью @Amroподход (что много чище, чем я предлагал раньше).