Однострочник:
size(A, 2) + 1 - sum(A(row_sel, :) > rand(size(A, 1), 1), 2)
Пояснение
Как вы уже выяснили
A(row_sel, :) > rand(size(A, 1), 1)
дает вам желаемое сравнение междуваши значения и некоторые случайные числа.Допустим, это
ans =
0 1 1
0 0 1
0 1 1
Тогда
sum(A(row_sel, :) > rand(size(A, 1), 1), 2)
подсчитывает вхождения 1с в результате на строку, поэтому здесь это
ans =
2
1
2
Теперь давайтеполучить общее количество элементов в строке
size(A, 2)
Просто вычтите количество найденных единиц, и вы получите первый индекс для каждой строки.(Мы должны добавить 1, потому что мы хотим первое вхождение.)
size(A, 2) + 1 - sum(A(row_sel, :) > rand(size(A, 1), 1), 2)