필터 지우기
필터 지우기

ONLY load matfiles that contain a variable

조회 수: 3 (최근 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