I have an m by n matrix in MATLAB
, say M. I have an n-element row vector, i.e. a one by n column matrix, say X.
I know X is a row somewhere in M. How can I find the index in M?
To access elements in a range of rows or columns, use the colon . For example, access the elements in the first through third row and the second through fourth column of A . An alternative way to compute r is to use the keyword end to specify the second column through the last column.
If for example your matrix is A, you can use : size(A,1) for number of rows. size(A,2) for number of columns. Also there are some other ways like : length ( A(:,1) ) for number of rows. Sign in to answer this question.
gnovice's suggestion is even simpler than mine:
[~,indx]=ismember(X,M,'rows') indx = 3
You can easily do it using find
and ismember
. Here's an example:
M=magic(4); %#your matrix M = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 X=[9 7 6 12]; %#your row vector find(ismember(M,X),1) ans = 3
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With