Finding the index of x values to create an equally spaced array.
20 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I would like to pick 53 (or any other arbituary number) data points from my data set by selecting the index of the matrix.

I would like to know the y values of 53 evenly spaced values of x. I want to plot the same graph but with only 53 data points. Ive attempted this by creating a linspace of length 53 with max and min values corresponding to the data, then trying to use the 'find' function for when my x array is equal to these numbers to find the array indices, and then finally finding the corresponding y-values.
dx = linspace(minx,maxx,53);
inx = find(x == dx);
dy = y(inx);
what I find very confusing is that the inx indexes are much larger than the size of the x and y arrays ( a factor of about 80 for some reason) so I cant find the corresponding y values as it exceeds the array.
Any help would be much apprieciated, cheers
1 Commento
Risposta accettata
Star Strider
il 4 Apr 2020
Your approach appears to be correct, as far as it goes. Use the interp1 function to create your result vector:
x = 0:195;
y = 8*exp(-0.03*x) + 2;
dx = linspace(min(x),max(x),53);
dy = interp1(x, y, dx);;
figure
plot(x, y, '-b')
hold on
plot(dx, dy, '+r')
hold off
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!