ONLY load matfiles that contain a variable

조회 수: 1 (최근 30일)
James hall
James hall 2013년 4월 22일
Hi Guys,
I want to detect if a .mat file contains a variable before the script loads it. for the script that I am writing I only want one data set and there are 8297 files to check, so to save time and prevent crashes I only want to load faultsActiveList. However because there are not always faults active it is not always present.
DATA = load(MATfile,'faultsActiveList')
please bear in mind allthough I am the author of many of the scripts I use I do use some that others in my company wrote and they are p.coded so I cannot effect how the data comes to me.
Many Thanks James

채택된 답변

Friedrich
Friedrich 2013년 4월 22일
편집: Friedrich 2013년 4월 22일
Hi,
you can use whos to see if there are any variables in the mat file and which ones:
info = whos('-file','myfile.mat')
info will be a structure of size nx1 where n is the amount of variables in the matfile. In addition the field name will tell you the names of the variables in the mat file.
So you can do
info = whos('-file','myfile.mat')
if any(strcmp({info.name},'faultsActiveList'))
load('myfile.mat','faultsActiveList')
end
  댓글 수: 1
James hall
James hall 2013년 4월 23일
Thanks very much Friedrich, works perfectly

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2013년 4월 22일
if isempty(who('faultsActiveList', '-file', MATfile))
... not there ...
end

카테고리

Help CenterFile Exchange에서 Workspace Variables and MAT Files에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by