Как проверить содержимое MAT-файла в MATLAB, не загружая его? - PullRequest
13 голосов
/ 26 октября 2010

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

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

Ответы [ 2 ]

23 голосов
/ 26 октября 2010

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

vars = whos('-file','test.mat')
ismember('fieldname', {vars.name})
6 голосов
/ 26 октября 2010

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

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

myStructure = load('test.mat');

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

...