Borrar filtros
Borrar filtros

assign values to a matrix without a loop

3 visualizaciones (últimos 30 días)
Victor Hugo Cantú
Victor Hugo Cantú el 26 de Feb. de 2019
Comentada: KSSV el 27 de Feb. de 2019
I want to access to some elements of a matrix.
I have a matrix P :
P = [1 2 3 4 5 6 7 8
2 1 3 4 5 6 7 8
3 4 2 1 5 6 7 8
4 3 5 2 6 1 7 8
5 4 6 3 7 2 8 1
6 5 7 4 8 3 9 2
7 8 6 9 5 10 4 11
8 7 9 10 6 11 5 12
9 10 8 11 7 12 6 13
10 9 11 8 12 7 13 6];
and a matrix A :
A = [5 4
2 8
1 5
4 3
2 6
2 3
1 3
4 6
4 6
5 8];
I want to obtain the A element of P in S, for example
S(1,:) = [5 4]
S(2,:) = [1 8]
S(3,:) = [3 5]
...
S(9,:) = [11 12]
S(10,:) = [12 6]
I konw how to do it with a for loop, but, is there a way to do it without any loop ?
  2 comentarios
madhan ravi
madhan ravi el 27 de Feb. de 2019
not clear
Victor Hugo Cantú
Victor Hugo Cantú el 27 de Feb. de 2019
Editada: Victor Hugo Cantú el 27 de Feb. de 2019
for being clear, I put the way to do it using a for loop
for i = 1:size(A,1)
S(i,:) = P(i,A(i,:));
end
How can I do the same without the for loop ?

Iniciar sesión para comentar.

Respuesta aceptada

KSSV
KSSV el 27 de Feb. de 2019
Editada: KSSV el 27 de Feb. de 2019
[m,n] = size(P) ;
I = repmat((1:m)',1,2) ;
idx = sub2ind(size(P),I,A) ;
iwant = P(idx)
  2 comentarios
Victor Hugo Cantú
Victor Hugo Cantú el 27 de Feb. de 2019
thank you very much ! it works ! in my exampe m = 10.
KSSV
KSSV el 27 de Feb. de 2019
Oh.....yes..m = 10. Edited the code.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements 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!

Translated by