Nel codice che hai scritto ci sono diversi errori.
Quelle che genera il messaggio di errore, sta nel fatto che hai definito il loop da 1 a length(v), vale a dire da 1 al numero di elementi del vettore, ma nella dell'if, usi v(i+1), questo fa si che, nel corso dell'ultima iterazione, cerchi di accedere all'elemento v(i+1) che è al di fuori del vettore
Il secondo errore consiste nel fatto che utilizzi un solo ciclo for.
Ammesso di aver corretto il promo errore (dovrebbe essere for i=1:length(v)-1), il codice che hai scritto verifica solo il valore della somma di due elementi consecutivi del vettore di input, mentre, dalla domanda, sembra che tu voglia considerare tutte le possibili coppie.
Un terzo errore consiste nel fatto che nel blocco "if" il valore assegnato alla variabile "a" viene sovrascritto ad ogni iterazione, per cui, alla fine avrai solo il valore dell'ultima coppia di valori controllati.
Inoltre a seconda del valore della somma, assegni alla variabile "a" in un caso un vettore ( a= [v(i),v(i+1)], nell'altro uno scalare.
Quello che potresti fare è creare una matrice con i valori delle coppie di valori testati ed un flag (1, 0) per identificare se la condizione è stata verificata
Una possibile soluzione che testi tutte le combinazioni potrebbe essere
res=[]
for i=1:length(v)-1
for j=i+1:length(v)
somma=v(i)+v(j)
if(somma == s)
res=[res;v(i) v(j) v(i)+v(j) 1];
else
res=[res;v(i) v(j) v(i)+v(j) -1];
end
end
end