Converting a matrix of points to a list of x & y coordinates

Hello,
I have a matrix of size n*n, filled with zeros. Some points are filled with A's. I'd like to take this matrix and turn it into two arrays, one with the x-coordinates of each A and the other with the y-coordinates of each A.
I have seen numerous ways of going the other way, i.e. from a list of coordinates to a matrix, but none going this way.
Any help is greatly appreciated!

1 件のコメント

Douglas
Douglas 2014 年 8 月 18 日
The reason I am looking to do this is to be able to use the scatter(X,Y) function to plot a sort of map of the matrix I have.
Is there perhaps a better way to do this?

サインインしてコメントする。

 採用された回答

Guillaume
Guillaume 2014 年 8 月 18 日

1 投票

Use the two arguments output of find (rather than find + ind2sub):
[y, x] = find(matrix);

1 件のコメント

Douglas
Douglas 2014 年 8 月 18 日
I went with this, seems the most straight-forward. Thank you!

サインインしてコメントする。

その他の回答 (2 件)

Iain
Iain 2014 年 8 月 18 日

0 投票

Index_of_As = find( matrix );
[down along] = ind2sub(size(matrix),Index_of_As);
Adam
Adam 2014 年 8 月 18 日
編集済み: Adam 2014 年 8 月 18 日

0 投票

ind1d = find( myMatrix == 'A' );
[y, x] = ind2sub( [n n], ind1d );
should be close to doing the job, although it depends what you mean by 'A'. Do you have a cell array? The above code would work if, instead of 'A', you had some numerical value, but otherwise it would likely need a bit of syntactical modification depending if you have a cell array.

カテゴリ

ヘルプ センター および File ExchangeDates and Time についてさらに検索

質問済み:

2014 年 8 月 18 日

コメント済み:

2014 年 8 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by