Need help for loop keeps overwriting plots
Show older comments
Hi everyone, I am working on some code and I am having issues. Every time I run the code instead of obtaining 5 unique figures, I get the same figure 5 times as my code reads all of the files but only plots the last one.
numfiles = 5;
mydata = cell(1, numfiles);
for i = 1:5
myfilename = sprintf('file%d.xlsx', i);
mydata{i} = xlsread('Base_01');
myfilename = sprintf('file%d.xlsx',i);
newdata{i} = xlsread('Hydrophone_01');
end
save('mydata.mat')
save('newdata.mat')
for i = 1:5 %why is it only plotting the last data set
thisfig = figure();
Data = mydata{1,i} (15005:21255,:);
subplot(3,1,1);
plot(Data(:,1),Data(:,2))
xlim([60 85])
title('Amplitude vs. Time for Base Data')
Code continues on further but I just shortened it here because this is the main issue I am having.
Thanks! Any help will be appreciated.
6 Comments
per isakson
on 29 Oct 2018
Edited: per isakson
on 29 Oct 2018
This code plots two diagrams on top of each other - as should be expected.
for ii = 1:2 %why is it only plotting the last data set
thisfig = figure();
Data(:,2) = randn( 17, 1 );
Data(:,1) = (1:17)';
subplot(3,1,1);
plot(Data(:,1),Data(:,2))
title('Amplitude vs. Time for Base Data')
end
Muhammad Akram
on 29 Oct 2018
per isakson
on 29 Oct 2018
Edited: per isakson
on 29 Oct 2018
- "what does the randn do?" See randn, Normally distributed random numbers
- "two diagrams on top of each other" I mean two figures on top of each other. Run my code and see for yourself.
- I use R2018a
madhan ravi
on 4 Nov 2018
don't close question which has answer
Muhammad Akram
on 4 Nov 2018
madhan ravi
on 4 Nov 2018
Did you upload your file?
Answers (1)
madhan ravi
on 29 Oct 2018
numfiles = 5;
mydata = cell(1, numfiles);
for i = 1:5
myfilename = sprintf('file%d.xlsx', i);
mydata{i} = xlsread('Base_01');
myfilename = sprintf('file%d.xlsx',i);
newdata{i} = xlsread('Hydrophone_01');
end
save('mydata.mat')
save('newdata.mat')
for i = 1:5 %why is it only plotting the last data set
thisfig = figure(i);
Data = mydata{1,i} (15005:21255,:);
subplot(3,1,1);
plot(Data(:,1),Data(:,2))
xlim([60 85])
title('Amplitude vs. Time for Base Data')
end
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!