color region in the plot based on the values

11 ビュー (過去 30 日間)
Turbulence Analysis
Turbulence Analysis 2023 年 11 月 2 日
コメント済み: Star Strider 2023 年 11 月 2 日
Hi,
In the attached array, I need to color the region based on whenever A(:,2) is greater than 5. I tried yregion,seems this will work only in 2023.
  2 件のコメント
Dyuman Joshi
Dyuman Joshi 2023 年 11 月 2 日
Which version of MATLAB are you using?
If you want an output similar to what yregion provies, what is the upper limit for the region?
If it is not similar to that, what is the expected output? A visual example would be helpful.
Dyuman Joshi
Dyuman Joshi 2023 年 11 月 2 日
You forgot to provide the end values -
Red color from 5 to what? Inf?
Similarly, green color from what to 5? -Inf?
And I suppose the x-limits should be the range of the x values i.e. A(:,1)?

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

採用された回答

Star Strider
Star Strider 2023 年 11 月 2 日
Try this —
LD = load('matlab.mat');
A = LD.A
A = 12493×2
-5.3531 1.3833 -5.1375 1.5149 -5.1375 1.5471 -5.1375 1.6226 -5.1375 1.6774 -5.1375 1.3851 -5.1375 1.5581 -5.1375 1.5314 -4.9938 1.7729 -4.9938 1.5963
thrshld = 5;
Lv = A(:,2) > thrshld;
idx1 = find(Lv);
idx2 = idx1(diff([0; idx1]) == 1);
% [x1,x2] = bounds(idx2)
idx2 = min(idx2) : max(idx2);
figure
plot(A(:,1), A(:,2))
hold on
patch([A(idx2,1); flip(A(idx2,1))], [thrshld+zeros(size(A(idx2,2))); flip(A(idx2,2))], 'r', 'FaceAlpha',0.5, 'EdgeColor','none')
patch([A(idx2,1); flip(A(idx2,1))], [min(ylim)+zeros(size(A(idx2,2))); thrshld+zeros(size(A(idx2,2)))], 'g', 'FaceAlpha',0.5, 'EdgeColor','none')
hold off
grid
.
  3 件のコメント
Turbulence Analysis
Turbulence Analysis 2023 年 11 月 2 日
Perfect! Thanks again
Star Strider
Star Strider 2023 年 11 月 2 日
As always, my pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCell Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by