How to find the position of the elements of a matrix?
217 次查看(过去 30 天)
显示 更早的评论
I have a 3x3 matrix: J=[0 3 4;3 0 8;4 8 0]
and I want to know in which position the elements exist. For example that 8 exists in second row and third column (2,3) and (3,2) too.
After that I want a new matrix with the value (i.e. 8) in one column and their ''coordinates'' (i.e. 2,3) in a column side by side.
Thanks
2 个评论
Steven Lord
2020-2-3
Paul Shoemaker's answer will give you the indices of the selected elements in the array, but depending on what you want to do that may not be necessary. For example if you want to get the elements of another array (the same size as J) in the same location as the 8's in J you can do this using logical indexing.
J=[0 3 4;3 0 8;4 8 0]
M = magic(3)
X = M(J == 8)
The vector X contains 9 and 7, the elements from M in locations corresponding to 8's in J. See this documentation page for more information.
Paul Shoemaker
2020-2-3
Yes, Steven Lord makes a good point: usage may drive you a different way. This is why it's helpful for those posting questions to explain what their end objective is, not just how to perform some specific mechanical action.
Similar to Steven's example, you can also change the original "J" variable where a certain condition is met:
J(J==8) = NaN; % efficient way to change all occurrences of "8" in the original matrix to be NaN's
Paul S
采纳的回答
Paul Shoemaker
2020-2-3
Check out the ind2sub Matlab function.
Paul Shoemaker
MatlabInvesting.com
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!