How to compare two vectors and output the index?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Aswin Sandirakumaran
el 26 de Abr. de 2018
Comentada: Aswin Sandirakumaran
el 26 de Abr. de 2018
For eg:
A = [60,600,15]
B = [60,512,30,13]
Now, take B(1) (60 here) and compare it with A(1)(60 here) If 60<=60 print index of A(i) ==> O/P should be 1. then increase A(i) += 1 so now B(1) should compare if it is <= A(2) 60<=512 yes true! so o/p = 2. It should compare all elements less than or equal to itself and output its index in a new vector.
Final output should be like this:
B(1) = [1,2];
B(2) = [2];
B(3) = [1,2];
B(4) = [1,2,3].
0 comentarios
Respuesta aceptada
Más respuestas (1)
Jan
el 26 de Abr. de 2018
Editada: Jan
el 26 de Abr. de 2018
One loop and one find is enough, easy and very efficient:
A = [60,600,15];
B = [60,512,30,13];
% For each element of B find the indices of elements of A which are
% greater or equal:
D = cell(size(B));
for k = 1:numel(B)
D{k} = find(B(k) <= A);
end
Or with hiding the loop inside cellfun:
D = cellfun(@(b) find(b <= A), num2cell(B), 'UniformOutput', 0)
0 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!