Arg max without using a loop
Mostrar comentarios más antiguos
I am looking for a method to reproduce the following without using a loop.
The issues come from the fact that the matrices I am using are too big and I could save some space avoiding to create a third matrix C to do the job.
My aim is to find some function f that does something similar to B = f(B(policy)). Is it possible to do it?
A = rand(10,20,30);
B = rand(10,20,30);
[A_hat, policy] = max(A,[],3);
for i = 1:10
for ii = 1:20
C = B(i,ii,policy(i,ii));
end
end
Thanks for the attention.
Sincerely
Luca
Respuesta aceptada
Más respuestas (1)
Luca Gagliardone
el 8 de Ag. de 2017
0 votos
2 comentarios
Adam
el 8 de Ag. de 2017
Well, everything is linear indexing under the hood anyway.
Luca Gagliardone
el 9 de Ag. de 2017
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!