Ваш код
sum(a(2,:)~=1)
сообщает, сколько записей во втором ряду не меньше 1. Это потому, что аргумент для sum
,
>> a(2,:)~=1
ans =
1 1 1 0
является логическим массивом, который указывает, отличается ли каждое из чисел в этой строке от 1, а логические значения false и true интерпретируются как числа 0 и 1 sum
.
Что вы хотите сделать, это использовать эти значения для логического индексирования в строке и суммирования только выбранных элементов
ind = a(2,:)~=1;
sum(a(2,ind))
или короче
sum(a(2,a(2,:)~=1))
Конечно, для общности было бы лучше заменить 1
на выражение min(a(2,:))