Risposte:
Un altro modo per farlo senza indicizzare è sottrarre il minimo dalla somma,
sum(a(2, :)) - min(a(2, :))
Il tuo codice
sum(a(2,:)~=1)
ti dice quante voci nella seconda riga non sono il minimo di 1. Questo perché l'argomento a sum
,
>> a(2,:)~=1
ans =
1 1 1 0
è un array logico che indica se ciascuno dei numeri in quella riga è diverso da 1 e i valori logici false e true sono interpretati come numeri 0 e 1 da sum
.
Quello che vuoi fare è usare questi valori per l'indicizzazione logica nella riga e sommare solo gli elementi selezionati
ind = a(2,:)~=1;
sum(a(2,ind))
o più corto
sum(a(2,a(2,:)~=1))
Naturalmente per la generalità sarebbe meglio sostituire 1
l'espressionemin(a(2,:))