find a vector in a big vector
Mostrar comentarios más antiguos
hi! how could i write this:
%
index=[find(a=2);find(a=4);find(a=6);find(a=8)....find(a=20)]
in a compact manner?
thank you
Respuesta aceptada
Más respuestas (2)
Andrei Bobrov
el 21 de Feb. de 2013
a = randi(80,50,1);
v = (2:2:20).';
[i1,i2] = ismember(a,v);
i3 = find(i1);
[~,jj] = sort(i2(i1));
index = i3(jj);
Please compare the runtime of this simple loop with the compact ARRAYFUN function with an anonymous function:
search = [2,4,6,8,20];
C = cell(1, length(search));
for iSearch = 1:length(search)
C{iSearch} = find(a == search(iSearch));
end
result = cat(2, C{:});
If compactness of the code really matters, write this as a function.
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!