Plotting different sections of multiple arrays using a loop
    8 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi,
I have multiple data files that I have extracted using a for loop, I can easily plot these files in the loop aswel.
The problem however is that for each file I only want to plot a snapshot of the data. does anyone know if this is possible to introduce in a loop.
My code to plot all the graphs is:
Time=linspace(1,3000,3000/(50*10^(-6)));
Files =   dir(fullfile('C:blah blah/*.mat')); 
filename = cell(length(Files),1); 
data = cell(length(Files),1); 
for k = 1:length(Files) 
filename{k} = Files(k).name;
data{k} = load(filename{k});
figure;
  plot(Time(1:length(data{k,1})),data{k,1});
  title(filename(k))
end
but to reiterate i want to say plot first data points 1000-2000 for 1, 1-1001 for 2 etc the only similarity is that the data ranges I want to plot are the same. Is this possible?
0 个评论
回答(1 个)
  Iain
      
 2014-10-9
        
      编辑:Iain
      
 2014-10-9
  
      Assuming your plot command is correct, all you need to do is modify it:
 plot(Time(1:length(data{k,1})),data{k,1});
 plot(Time(1:1000),data{k,1}(1:1000));
2 个评论
  Iain
      
 2014-10-9
				You just need a function that tells you the first index to use, and a function that tells you the last index to use.
something like
 first = [1 501 201 640 981 321];
 first_index = first(k);
 plot(Time(first_index:(first_index+999)),data{k,1}(first_index:(first_index+999)));
I am assuming that you want the same part of "Time" as you do data...
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

