Plotting a logical function if a value is greater than 0
17 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Antworten (2)
Matt J
am 16 Apr. 2021
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 Kommentare
Walter Roberson
am 16 Apr. 2021
Yes, I was careful to arrange that the Y axes values would be those values.
Walter Roberson
am 16 Apr. 2021
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
0 Kommentare
Siehe auch
Kategorien
Mehr zu Line Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!