How to find position of value in matrix and write as another matrix

1 次查看(过去 30 天)
Lets say i have this matrix
A = [1 0;
0 0;
1 1;
0 1;
0 0]
Now i want to write the positions of line of value "1" in another matrix B. In A it should start from column1. answer should be like this
B=[1 3 3 4]
which is in column1 value"1" is at 1 and 3, and in column 2 value"1" is at line 3 and 4.

采纳的回答

the cyclist
the cyclist 2014-8-13
编辑:the cyclist 2014-8-13
[ii jj] = find(A);
B = ii';
Since you don't need the jj index, you can just do
[ii ~] = find(A);
B = ii';
instead.
  1 个评论
Akmyrat
Akmyrat 2014-8-13
thanks a lot cyclist...Same A matrix with one more column A=[1 0 0;0 0 1;1 1 0;0 1 0;0 0 0]. i want result to be like that B=[1 3 2 3 4], which is from top to down 1 and 3 position in !st column, 2 position in 3rd column, 3 and 4 position in 2nd column. can u help please.

请先登录,再进行评论。

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2014-8-13
编辑:Andrei Bobrov 2014-8-13
on Akmyrat's comment
[B,~] = find(A(:,[1 3 2]));
B = B';

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by