# Plotting a logical function if a value is greater than 0

27 ビュー (過去 30 日間)
Wesley Murar 2021 年 4 月 16 日 5:35
コメント済み: Walter Roberson 2021 年 4 月 16 日 10:00
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 2021 年 4 月 16 日 6:17
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 件のコメント表示非表示 1 件の古いコメント
Walter Roberson 2021 年 4 月 16 日 10:00
Yes, I was careful to arrange that the Y axes values would be those values.

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

Walter Roberson 2021 年 4 月 16 日 6:36
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

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

### Community Treasure Hunt

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

Start Hunting!