Ответ 1
Чтобы проверить содержимое файла MAT без его загрузки, используйте:
vars = whos('-file','test.mat')
ismember('fieldname', {vars.name})
У меня есть большая структура в MAT файле. Я хочу проверить, присутствует ли конкретное поле в структуре без загрузки MAT файла, поскольку содержимое очень велико, и я хочу свести к минимуму использование памяти.
Возможно ли это, или я должен сначала загрузить его, как в следующем примере?:
load('test.mat'); %# Load the MAT-file
tf = isfield(s,'fieldname'); %# Check if structure s has field 'fieldname'
Чтобы проверить содержимое файла MAT без его загрузки, используйте:
vars = whos('-file','test.mat')
ismember('fieldname', {vars.name})
Насколько я знаю, вам нужно загрузить файл, чтобы проверить, содержит ли сохраненная структура определенное поле.
Однако, если вы сохраните файл .mat с '-struct'
-option, он разбивает поля на отдельные переменные в. мат. Вы можете воссоздать структуру, вызвав
myStructure = load('test.mat');
Сохранение этого способа также позволяет проверить, существует ли поле (переменная) с помощью подхода @Amro (который намного чище, чем я предложил раньше).