フィルターのクリア

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

4 ビュー (過去 30 日間)
Pouya
Pouya 2022 年 4 月 19 日
回答済み: Pratyush Swain 2023 年 10 月 3 日
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 件のコメント
Image Analyst
Image Analyst 2022 年 4 月 19 日
編集済み: Image Analyst 2022 年 4 月 19 日
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 2022 年 4 月 19 日
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?

サインインしてコメントする。

回答 (1 件)

Pratyush Swain
Pratyush Swain 2023 年 10 月 3 日
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.

カテゴリ

Help Center および File ExchangeGrid Lines, Tick Values, and Labels についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by