convert plot(x,y) to plot(y(ind))

1 view (last 30 days)
Muhannad
Muhannad on 24 Jun 2015
Commented: Muhannad on 24 Jun 2015
Hi,
I am trying to convert plot(x,y) to plot(y(ind)) So i am interesting in getting the indices of x which gives me y?
Thanks,

Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 24 Jun 2015
Edited: Azzi Abdelmalek on 24 Jun 2015
Just do this
plot(y)
  6 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 24 Jun 2015
x = cumsum(hann(100));
y = linspace(-1,1,100);
plot(x,y);
idx=1:10:100
set(gca,'xtick',x(idx))
nxt=arrayfun(@num2str,idx,'un',0)
set(gca,'xticklabel',nxt)
Muhannad
Muhannad on 24 Jun 2015
can you show the final results in plot(y(ind))? as I need the indices and not the plot.

Sign in to comment.


Purushottama Rao
Purushottama Rao on 24 Jun 2015
g=interp1(y,x,0.5)
g gives you the x value corresponding to the given y value (0.5).
Use a for loop to find out the entire range.
Hope this is what you are looking for
  3 Comments
Purushottama Rao
Purushottama Rao on 24 Jun 2015
Edited: Purushottama Rao on 24 Jun 2015
x = cumsum(hann(100));
y = linspace(-1,1,100);
plot(x,y);
for k=1:length(y)
g(k)=interp1(y,x,y(k));
end
The speed looks to be ok. Ofcourse i do not know whether you are using the same x and y or not.
Muhannad
Muhannad on 24 Jun 2015
so can you include another plot(y(ind)) which will give me the same shape as plot(x,y) but the x axis will be different and it will include the indices?

Sign in to comment.

Tags

Products

Community Treasure Hunt

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

Start Hunting!