Borrar filtros
Borrar filtros

How to select specific elements in a matrix?

52 visualizaciones (últimos 30 días)
Tin Nguyen
Tin Nguyen el 10 de Oct. de 2015
Comentada: the cyclist el 11 de Oct. de 2015
Say I have a 10x10 matrix
x =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
And I want to select a certain element from each row in the matrix for example: I want elements from row 1 column 3, row 2 column 4, row 4 column 3, row 5 column 3 and turn those element into 0. I know I can do something like:
x(1,3)=0;
x(2,4)=0;
etc. But that is time-consuming. Is there a code that I can just write all that in one line? I thought it would be something like:
x=([1 2 3 4], [3 4 3 3])=0;

Respuestas (1)

the cyclist
the cyclist el 10 de Oct. de 2015
Yes, but you have to use "linear indices":
x = [
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9]
linearIndices = sub2ind(size(x),[1 2 3 4], [3 4 3 3])
x(linearIndices) = 0
  3 comentarios
Tin Nguyen
Tin Nguyen el 10 de Oct. de 2015
Thank you so much! That worked perfectly :) !
the cyclist
the cyclist el 11 de Oct. de 2015
The best form of thanks is accepting a solution that worked for you. (This rewards the person who helped you, and also may help future people with a similar question.)

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by