Azzera filtri
Azzera filtri

Reduce a vector to the size of another vector

3 visualizzazioni (ultimi 30 giorni)
Hello,
I have two vectors currently. I have nonzeroDecel which is a 1x2168 double and start_1G which is a 1x7 double. I need to reduce nonzeroDecel so that for each number of start_1G, it takes the number that's closest and bigger than the number in start_1G. In the end I want nonzeroDecel to also be a 1x7. Any ideas? I have attached the variables from excel so you do not have to make up your own if you don't want to.

Risposta accettata

KSSV
KSSV il 6 Ott 2020
Modificato: KSSV il 6 Ott 2020
Read about ismember, ismembertol, knsnearch.
If v is the vector and val is the value for which you want to get the closest value from v, use:
num = xlsread("matlab_question.xlsx") ;
vec = num(:,1) ;
val = num(:,2) ;
% Remove nans
val(isnan(val)) = [] ;
iwant = zeros(size(val)) ;
for i = 1:length(val)
[v,idx] = min(abs(vec-val(i))) ;
iwant(i) = vec(idx) ;
end

Più risposte (0)

Categorie

Scopri di più su Get Started with MATLAB 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!

Translated by