Reduce a vector to the size of another vector
3 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
KSSV
2020-10-6
编辑:KSSV
2020-10-6
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
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!