Creating a new plot every time there is a gap in data

2 views (last 30 days)
Hi,
I have two sets of data for a day worth of a staellite measurment. y is the measurment that the satellite does and x is lattitude that the satellite is in. Since there are more than one orbit per day the lattitude value recycles every orbit. I want to make a simple plot (or a series of plots) that starts displaying (x,y) from the beginning but when there is gap in data (represnting the recycled orbit) worth of lets say 5 [degrees], it starts a new plot and so on.
Thanks,
Pouya.
  2 Comments
Image Analyst
Image Analyst on 19 Apr 2022
Edited: Image Analyst on 19 Apr 2022
OK. Good luck with it. If you have any questions, just ask. But if you do ask, read this link first:
and attach your data file and code to read it into a variable in MATLAB. In the meantime, use diff(x) > 5 to try to find gaps of more than 5 in x.
Pouya
Pouya on 19 Apr 2022
My appologies I rushed posting this question I should've clarified my question better.
Basically let's say we have variable x = 1 2 3 4 5 6 ... 360 1 2 3 4 5 6 ... 360 1 2... and y= y1 y2 y3 ...yn
Plotting x vs y using plot(x,y) will show all y values vs x.
My question is, how can I plot these data so that when there is a gap between the values of data x larger than 1, for example, it saves the previous plot and start a new one where x(i=366) vs y(i=366) is the first data point of the new plot?

Sign in to comment.

Answers (1)

Pratyush Swain
Pratyush Swain on 3 Oct 2023
Hi Pouya,
I understand you want a new plot figure everytime the latitude values are recycled.
Please refer to an example implementation below:
lat = 1:360;
x=[lat,lat,lat]; % Example x data - series of cycling repeating values
y = 100*rand(1,360*3); % Example y data
figure; % Create a new figure
startIndex = 1; % Start index of each plot segment
for i = 2:length(x)
if abs(x(i) - x(i-1)) > 1 % Check if there is a gap larger than 1
plot(x(startIndex:i-1), y(startIndex:i-1)); % Plot the segment
xlabel('latitude'); % Set x-axis label
ylabel('y'); % Set y-axis label
figure; %Create new figure after each plot
startIndex = i; % Update the start index for the next segment
end
end
plot(x(startIndex:end), y(startIndex:end)); % Plot the last segment
xlabel('latitude'); % Set x-axis label
ylabel('y'); % Set y-axis label
Three independent plots are obtained as a result of above implementation.
Hope this helps.

Categories

Find more on Just for fun in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!