How to select specific elements in a matrix?

142 Ansichten (letzte 30 Tage)
Tin Nguyen
Tin Nguyen am 10 Okt. 2015
Kommentiert: the cyclist am 11 Okt. 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;

Antworten (1)

the cyclist
the cyclist am 10 Okt. 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 Kommentare
Tin Nguyen
Tin Nguyen am 10 Okt. 2015
Thank you so much! That worked perfectly :) !
the cyclist
the cyclist am 11 Okt. 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.)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by