Finding Values nearest a certain number

2 vues (au cours des 30 derniers jours)
Brice Ortiz
Brice Ortiz le 19 Juin 2019
Modifié(e) : Shubham Gupta le 19 Juin 2019
I am trying to find the values in a set of data points nearest multiples of 1000 i.e 0, 1000, 2000, ..., 10000. I have an excel workbook with 4650 data points and lets say column one is load's (P) ranging from 0 to 10000 and column two are the deflections (d) caused by those loads. I need to find the values in column 1 closest to multiples of 1000 and then also find the corresponding values in column 2 that match the values from colunm 1.
So far I have,
X=[0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000];
y=min(abs(P-x))
This is returning the differences between the closest multiples and the loads. For example if the closest load in column 1 to 1000 is 1001.65 it is giving me the value 1.65 but I need it to give me the 1001.65 value. And then I would need help with another equation that would return the value in column 2 that corresponds to the load of 1001.65.
  1 commentaire
madhan ravi
madhan ravi le 19 Juin 2019
Perhaps you need ismembertol() ?

Connectez-vous pour commenter.

Réponses (1)

Shubham Gupta
Shubham Gupta le 19 Juin 2019
Modifié(e) : Shubham Gupta le 19 Juin 2019
If I understand it clearly your P(and d) is a row/column vector of length 4650 and you need to find 11 points which are closest to X's 11 elements. If that is the case, I think you can try the code below to achieve the desired results. ( I am defining P as a row vector of 21 elements for this example )
X=[0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000];
P = [0,43,532,1046,1583,2043,2543,3095,3294,3794,3809,4130,4690,5021,5420,6043,6901,7800,8100,8900,10000];
d = rand(1,21);
%% Code that I tried
Abs_diff=abs(bsxfun(@minus,meshgrid(X,P),P'));
[mindiff,Corr_ind]=min(Abs_diff);
% Updated Load and deflection
P_updated = P(Corr_ind);
d_corresponding = d(Corr_ind);
I hope it helps !

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by