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

5 views (last 30 days)
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,

Azzi Abdelmalek on 24 Jun 2015
Edited: Azzi Abdelmalek on 24 Jun 2015
Just do this
plot(y)
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)
can you show the final results in plot(y(ind))? as I need the indices and not the plot.

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 CommentsShow 1 older commentHide 1 older comment
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.
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?

### Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!