How to access specific elements of an array?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Karthik Nagarajan
el 14 de Jul. de 2017
Comentada: Star Strider
el 14 de Jul. de 2017
Suppose I have two matrices A and x as follows:
x =
1 2
2 3
A =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Each row of x contains the row and column indices of an element of A that I would like to access and change. In the above example, I want to change the (1,2) and (2,3) elements of A. Suppose I want to set the value of these elements to 5. The command 'A([1 2],[2 3]) = 5;' produces A =
1 5 5 1
1 5 5 1
1 1 1 1
1 1 1 1
However, what I want is the following:
A =
1 5 1 1
1 1 5 1
1 1 1 1
1 1 1 1
In my actual code, A and x may have thousands of elements each. Therefore, I am wondering whether it is possible to do this without using a for loop?
0 comentarios
Respuesta aceptada
Star Strider
el 14 de Jul. de 2017
Editada: Star Strider
el 14 de Jul. de 2017
One approach:
ix = sub2ind(size(A), x(:,1), x(:,2)); % Change Subscripts To Linear Index Vector
A(ix) = 5;
A =
1 5 1 1
1 1 5 1
1 1 1 1
1 1 1 1
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays 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!