我在matlab中有一个这样的示例矩阵(尽管我的实际矩阵包含更多列)

List = [0,0,1;1,0,0;0,1,0;0,1,0;0,0,0]

List =

     0     0     1
     1     0     0
     0     1     0
     0     1     0
     0     0     0

我试图找到一种方法,可以将条件TRUE(=1)归纳为一个只有一列的新变量,但这表示结构(如以下列表)中的列号
ListNew =

     3
     1
     2
     2
     0

在matlab中有函数或简单的方法来实现这一点吗?

最佳答案

有一种更简单的方法find()

[ListNew,~] = find(List');

考虑到下面的评论,可以修改如下:
ListNew=zeros(5,1);
[Col,Row] = find(List');
ListNew(Rows)=Col;

10-07 16:38