Say I have a random sequence of such as new=randn(5,1) which produces y values of
ans =
-0.9118
0.0494
1.0780
0.3082
0.2996
How would I plot these points as a line on a graph ie x=0, y=-0.9118 x=1 y=0.0494 etc or a line connecting the y values. I have tried
plot(new)
I would then like to add points to the graph as blue dots ie onto the graph of new=randn(5,1) add blue dots at the points from code such as
datapoints=
-0.9118
0.3082 or
datapoints=-0.9118 0.3082
I hope this make sense and thanks for the help.

 채택된 답변

Fabio Freschi
Fabio Freschi 2019년 10월 10일

1 개 추천

I suggest you to check hold on, and the LineSpec of the command plot
% your data
new = rand(5,1);
% open figure and retain current plot
figure, hold on
plot(new);
% new data points
datapoints = [-0.9118 0.3082]
% plot with blue circles
plot(datapoints,'bo')

댓글 수: 6

jacob Mitch
jacob Mitch 2019년 10월 10일
편집: jacob Mitch 2019년 10월 10일
Hiya im just having problems in that the datapoints are slightly shifted left of the minima points, I guess the y values match however the x value positions dont match. In that for ans y=-0.9118 x=1 match but y=0.3082 x=4 from ans doesnt match y=0.3082 x=2 from datapoints.
Fabio Freschi
Fabio Freschi 2019년 10월 11일
you must plot using x and y vectors. Can you share the code you used to calculate datapoints?
jacob Mitch
jacob Mitch 2019년 10월 11일
편집: jacob Mitch 2019년 10월 11일
Hi Fabio my code is
function [xvalues, yvalues] = test(data)
c=1;
input=data;
x=length(input);
for z=2:x-x
elseif input(z-1)>input(z) && input(z)<input(z+1)
xvalues(c,1)=z;
yvalues(c,1)=input(z);
c=c+1
end
end
So I would like to graph the "data" points maybe as a lines connecting them then I would like to plot the minima of the graph that I get from "yvalues" ie if i had data as [3;0;3;1;3] and "yvalues" obtains the minima as [0;1], I would like the data drawn as lines connecting 3,0,3,1,3 for the y values and 3,0 as red circles at those points on the line. I would not like to use sign, find or diff functions. Thanks for your help again.
So it should be something like
% your data
new = rand(5,1);
% open figure and retain current plot
figure, hold on
plot(new);
% new data points
[xdatapoints,ydatapoints] = test(new);
% plot minima
plot(xdatapoints,ydatapoints,'ro'); % no line connecting minima
% plot(xdatapoints,ydatapoints,'ro-'); % line connecting minima
Note that it is not clear why the loop is for z=2:x-x. Why x-x?
Hi there, sorry it was just meant to be
for z=2:x
if z==x
return
jacob Mitch
jacob Mitch 2019년 10월 12일
This may be late but you're a genius. Thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Line Plots에 대해 자세히 알아보기

질문:

2019년 10월 10일

댓글:

2019년 10월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by