Hi all,
The below code is generating an error :
The code used here is:
%BATCH MODE
files = dir('C:\Users\Deakin Uni\Documents\MATLAB\a');
fNames = {files.name};
%for each file
for k= 1: length(fNames)
% extract file name
fName = ['C:\Users\Deakin Uni\Documents\MATLAB\MAX', fNames{k}];
[XDATA, TIMESTEPS] = importfile(fName);
a1 = XDATA - mean (XDATA);
plot(TIMESTEPS, a1);
[peakvals,peaklocs] = findpeaks(a1, 'minpeakdistance',50, 'minpeakheight', 0.00001);
peaktime = TIMESTEPS(peaklocs);
createfigure4(TIMESTEPS, a1, peaktime, peakvals)
saveas(gcf, 'chaitu.fig')
end
The error here is: Error using xlsread (line 132) XLSREAD unable to open file 'fName'. File 'fName' not found.
Error in importfile (line 36) data = xlsread(workbookFile, sheetName, sprintf('A%d:B%d',startRow(1),endRow(1)));
Thanks in advance

2 Kommentare

Adam
Adam am 5 Apr. 2017
What is in fNames when you step through the code in the debugger?
Chaitanya Bade
Chaitanya Bade am 5 Apr. 2017
Bearbeitet: the cyclist am 5 Apr. 2017
Sorry mate, just realized there were some issues with my directory folder. Have made changes. It's working now. However, it is not running the loop. Just generating solution for the first file and that's it. Wondering if you can help. Thanks!
%BATCH MODE
files = dir('C:\Users\Deakin Uni\Documents\MATLAB\a\*CA90-Wb0R0-00015MAX-X*');
fNames = {files.name};
%for each file
for k= 1: length(fNames)
% extract file name
fName = ['C:\Users\Deakin Uni\Documents\MATLAB\a\', fNames{k}];
[XDATA, TIMESTEPS] = importfile(fName);
a1 = XDATA - mean (XDATA);
plot(TIMESTEPS, a1);
[peakvals,peaklocs] = findpeaks(a1, 'minpeakdistance',50, 'minpeakheight', 0.00001);
peaktime = TIMESTEPS(peaklocs);
createfigure4(TIMESTEPS, a1, peaktime, peakvals)
saveas(gcf, 'chaitu.fig')
end

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

the cyclist
the cyclist am 5 Apr. 2017

0 Stimmen

Presumably, the cause is that for some value of k,
['C:\Users\Deakin Uni\Documents\MATLAB\MAX', fNames{k}]
does not resolve to a string that corresponds to a file name in that directory.
I suggest you display the name of each file as you try to access it, and that should lead you to the specific file name that is problematic.

6 Kommentare

Chaitanya Bade
Chaitanya Bade am 5 Apr. 2017
It doesn't go past the 1st file. Only the results of the 1st file is being displayed. And I reckon there should be some error in my for loop code. Any assistance with this?
Does it stop and give an error? If so, what is the error?
If you put the line
disp(k)
in the loop, does it display every value of k you expect?
What is the value of length(fNames)?
Walter Roberson
Walter Roberson am 5 Apr. 2017
dir('C:\Users\Deakin Uni\Documents\MATLAB\a\*CA90-Wb0R0-00015MAX-X*') might only be matching one file.
Note: I recommend that you switch to using fullfile() instead of concatenating directory strings the way you are.
Chaitanya Bade
Chaitanya Bade am 6 Apr. 2017
@Walter Roberson: yes The name only matches for one file. But i wanted to run a batch mode for 3 files in the directory 'C:\Users\Deakin Uni\Documents\MATLAB\a\'. How do I do it?
Chaitanya Bade
Chaitanya Bade am 6 Apr. 2017
Bearbeitet: Chaitanya Bade am 6 Apr. 2017
@the cyclist: if i put disp(k), it just shows the first file. I wanted to run a loop among all the files within the directory. And it does not show any error. I have got the solution for the first file. But not for the other two files. And the value of length(fNames) is 3.
the cyclist
the cyclist am 6 Apr. 2017
Nothing stands out to me (after admittedly not very intense scrutiny). Are you familiar with the ability to enter debug mode? I suggest you use that to step through your program line-by-line from k==1, and see if the values of the variables are what you expect them to be. This should give a clue about what went wrong.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Report Generator finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by