Как я могу проверить содержимое 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подход (что много чище, чем я предлагал раньше).