Pulling .mat files from multiple directories in one function
조회 수: 2 (최근 30일)
이전 댓글 표시
I'm writing a function that pulls data from one directory, compares it's string name to another file in another directory and then runs processes on them both
So far things look like this
function matlabanswers_plzhelp
eData= dir('C:/file/file/file/*.mat')
for i = 1:numel(eData)
eName = eData.name
a=regexp(eName,'_','split');
experimentName = a{1};
load(eName)
lData = dir('C:/differentfolder/*.mat')
for n=1:numel(lData)
lName = lData.name
if strcmp(lName,experimentName) ==1
load lName
% run code using variables from both loaded eName and lName.mat files
else
end
end
end
For some reason this type of code works when I'm working out of one directory, but refuses to actually load the files if they are from different directories...
any idea of what I'm doing wrong?
Thanks ML
댓글 수: 0
채택된 답변
Jonathan Sullivan
2013년 6월 11일
When you call load, you are not referencing them by their file name only (i.e. no directory). Try something like this:
function matlabanswers_plzhelp
d1 = ['C:/file/file/file/'];
eData= dir([d1 '*.mat'])
for i = 1:numel(eData)
eName = eData.name
a=regexp(eName,'_','split');
experimentName = a{1};
load([d1 eName])
d2 = 'C:/differentfolder/';
lData = dir([d2 '*.mat'])
for n=1:numel(lData)
lName = lData.name
if strcmp(lName,experimentName) ==1
load([d2 lName])
% run code using variables from both loaded eName and lName.mat files
else
end
end
댓글 수: 0
추가 답변 (1개)
Kevin Claytor
2013년 6월 11일
편집: Kevin Claytor
2013년 6월 11일
Windows convention with 'nix file slash...?
Anyway... when you call; "load lName" it searches for lName from the current directory. Try;
lDir = 'C:\differentfolder\'
lData = dir([lDir,*.mat])
...
if strcmp(lName,experimentName) ==1
load(fullfile(lDir,lName))
참고 항목
카테고리
Help Center 및 File Exchange에서 Search Path에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!