How to select specific elements in a matrix?
145 views (last 30 days)
Show older comments
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;
0 Comments
Answers (1)
the cyclist
on 10 Oct 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 Comments
the cyclist
on 11 Oct 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.)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!