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.
Fabio Freschi
Fabio Freschi 2019 年 10 月 11 日
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?
jacob Mitch
jacob Mitch 2019 年 10 月 12 日
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 ExchangeLine Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by