MATLAB Answers

0

How to extract column and row index and the corresponding value from a matrix?

Asked by Vivaswan ChandraShekar on 23 Jun 2019
Latest activity Commented on by Andrei Bobrov
on 26 Jun 2019
I have a huge matrix of pixel values from an image converted into a text file. I need to convert this matrix into a table with column index, row index and the element as seperate columns of the table. How do I do this?
I'm doing this to figure out of the Centre of mass of a 2D projection of an object in the image. The image is a binary image with a single object in white and the background in black. Is there any other way to do this?

  2 Comments

A sample illustration would help
Like this:
from -
0 1 4
7 6 0
to -
row column element
1 1 0
1 2 1
1 3 4
2 1 7
2 2 6
2 3 0

Sign in to comment.

Products


Release

R2019a

2 Answers

Answer by madhan ravi
on 23 Jun 2019
Edited by madhan ravi
on 23 Jun 2019

m = [0 1 4
7 6 0];
[Rows,Columns] = ind2sub(size(m),(1:numel(m))');
Wanted = [Rows,Columns,m(:)];
Wantedtable = sortrows(array2table(Wanted,'VariableNames',{'Rows','Columns','Elements'}),1)

  1 Comment

@Madhan I tried, could not implement it without loop. +1

Sign in to comment.


Answer by Andrei Bobrov
on 23 Jun 2019

A = [0 1 4
7 6 0];
out = sortrows([fullfact(size(A)),A(:)]);