Plotting a logical function if a value is greater than 0

6 ビュー (過去 30 日間)
Wesley Murar
Wesley Murar 2021 年 4 月 16 日
コメント済み: Walter Roberson 2021 年 4 月 16 日
I'm trying plot a logical input over the course of the time vector tor, where as long if the function is true, then I would plot a solid line, if false it wouldn't plot anything. I have 6 different inputs that I need to make the comparison for listed in the ordinal, but I don't know how to plot that logical value over the course "tor". Can anyone help?
if real(s1.*conj(s2))>0;
AG = true();
figure
plot(tor,AG)
y = ordinal({'AG', 'BG', 'CG', 'AB', 'BC', 'CA'})
end
Thanks

回答 (2 件)

Matt J
Matt J 2021 年 4 月 16 日
Something like this?
tor=1:10;
AG=tor>5;
y=double(AG); y(~AG)=nan;
h=plot(tor,y);
xlim([min(tor),max(tor)]);xlabel 'tor', ylabel 'y'
  2 件のコメント
Wesley Murar
Wesley Murar 2021 年 4 月 16 日
I need the y-axis to be the following values:
AG, BG, CG, AB, BC, and CA
Then if real(s1.*s2(conj)) > 0, then plot that with a solid line for the respective y-axis variable as shown in the picture.
Walter Roberson
Walter Roberson 2021 年 4 月 16 日
Yes, I was careful to arrange that the Y axes values would be those values.

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


Walter Roberson
Walter Roberson 2021 年 4 月 16 日
torvals = linspace(0,6);
ntor = length(torvals);
C = categorical(nan(ntor,1), (1:6),{'AB', 'BC', 'CA', 'AG', 'BG', 'CG'}, 'ordinal',true);
ABvals = C;
BCvals = C;
CAvals = C;
AGvals = C;
BGvals = C;
CGvals = C;
for toridx = 1 : ntor
tor = torvals(toridx);
%stuff here based on tor
if real(s1.*conj(s2))>0
AGvals(toridx) = 'AG';
end
end
h = plot(torvals, [ABvals, BCvals, CAvals, AGvals, BGvals, CGvals]);
h(4).Color = [0.5, 0, 0.5]; %purple

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by