我有一个矩阵,
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列中找到第二行,依此类推.
您可以使用第二个输出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)