Azzera filtri
Azzera filtri

finding nearest number in matrices

2 visualizzazioni (ultimi 30 giorni)
sajad
sajad il 14 Lug 2014
Commentato: sajad il 14 Lug 2014
hi I have 2 matrices A and B.
A=[0 0.375 0.405 0.452 0.500 0.530 0.577 0.623 0.639 0.670 0.701 0.717 0.748 0.779]
B=0:01:end
I want to find nearest number of A to 0.1 and then to 0.2 and then to 0.3 and ...
in this case the nearest numbers to 0.1 and 0.2 is 0.but I want a program that find the nearest number to 0.1 and put that number away and then find the nearest number to 0.2 and so on.
can you help me?
  1 Commento
Jan
Jan il 14 Lug 2014
Modificato: Jan il 14 Lug 2014
What have you tried so far?
"B = 0:01:end" is no valid Matlab syntax. Please edit the question and replace it by what you really want.

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 14 Lug 2014
What's the purpose of B? What is "end"?
Anyway, using A, try this:
clc;
A=[0 0.375 0.405 0.452 0.500 0.530 0.577 0.623 0.639 0.670 0.701 0.717 0.748 0.779]
for k = 1 : length(A)
[~, nearestIndex(k)] = min(abs(A - k/10));
end
% Display in command window:
nearestIndex
  5 Commenti
Image Analyst
Image Analyst il 14 Lug 2014
k is an index. Indexes can't start from 0 since they have to be integers starting at 1. However you can make another variable that is just k-1 if you want.
But anyway, that code doesn't use B like my latest code, so it's not right anyway.
sajad
sajad il 14 Lug 2014
I used your first code.
thanks

Accedi per commentare.

Più risposte (1)

Jan
Jan il 14 Lug 2014
Modificato: Jan il 14 Lug 2014
A = [0 0.375 0.405 0.452 0.500 0.530 0.577 0.623 0.639 0.670 0.701 0.717 ...
0.748 0.779]
B = 0:0.1:1; % Did you menat this?!
[value, index] = min(abs(bsxfun(@minus, A, B')))
  1 Commento
sajad
sajad il 14 Lug 2014
No. thanks but previous answer is the thing I want.
I explained the exact thing in comment
thanks again

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by