plot seperate measurements in for loop on the same graph

1 view (last 30 days)
I have several measurements saved in one folder. All measurement files have the same two colums (column A is time(s) and column B is volt). I used this script:
myDir = uigetdir; %gets directory
myFiles = dir(fullfile(myDir,'*.xlsx')); %gets all xlsx in struct
for i = 1:length(myFiles(:,1));
sig= xlsread(myFiles(i).name, 'B:B');
time= xlsread(myFiles(i).name, 'A:A');
plot(time,sig(i))
However, the sig returns as the values of column B of all measurements and does not plot anything but I only want Matlab to loop through every file and then plot the separate measurements in one figure using multiple graphs per measurement.
  3 Comments
Debbie Oomen
Debbie Oomen on 10 Oct 2017
Thank you. However, I now get two plots in the same figure and they are overwriting another. I want the plots for all my signals in different graphs so that each measurement can be seen beneath each other. How can I do this?
Jonathan Chin
Jonathan Chin on 11 Oct 2017
Edited: Jonathan Chin on 11 Oct 2017
do you mean sub plots?
for i = 1:length(myFiles(:,1));
sig{i}= xlsread(myFiles(i).name, 'B:B');
time{i}= xlsread(myFiles(i).name, 'A:A');
subplot(length(myFiles(:,1)),1,i)
plot(time{i},sig{i})
end
subplot allows you to put multiple plots on the same figure.

Sign in to comment.

Answers (1)

KSSV
KSSV on 10 Oct 2017
files = dir('*.xlsx'); % get all excel files
N = length(files) ; % total number of files
figure
hold on
for ii = 1:N
[num,txt,raw] = xlsread(files(i).name) ;
plot(num(:,1),num(:,2))
end

Community Treasure Hunt

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

Start Hunting!