如何在MATLAB的每一行中找到第一个'1'

0 matlab matrix find

我有一个矩阵,

A = [ 0 0 0 0 0 0 1 1 1 1 0 0; 0 0 0 0 0 1 1 1 1 0 0 0; 0 0 0 0 0 0 1 1 1 1 0 0]
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在每一行中找到第一个'1'.我想输出将显示如下:

B = [7; 6; 7]
Run Code Online (Sandbox Code Playgroud)

这意味着,对于第一行,在第7列中找到数字1,在第6列中找到第二行,依此类推.

Lui*_*ndo 7

您可以使用第二个输出max,它给出了最大值的位置:

v = 1; % desired value
[~, B] = max(A==v, [], 2); % position of maxima along the second dimension
Run Code Online (Sandbox Code Playgroud)

作为奖励,如果可能存在不包含所需值的行,则可以0按如下方式输出这些行:

[m, B] = max(A==v, [], 2);
B = B.*m;
Run Code Online (Sandbox Code Playgroud)