Per creare il vettore e sostituire i valori nella matrice non è necessario utilizzare dei cicli "for", puoi sfruttare le proprietà di "indexing" di MatLab.
Per creare uno script un po' più generale, puoi definire tre variabili che contengano, rispettivamente, il valore iniziale della riga, il valore finale ed il numero della colonna:
riga_iniz=48;
riga_fin=96;
colonna=5;
Quindi, data una matrice di esempio:
m=randi(100,96,5)
sfruttando le proprietà di indexing puoi:
[*] estrarre i dati dalla matrice:
v=m(riga_iniz:riga_fin,colonna)
[*] sostituire i valori della matrice con degli "0":
m(riga_iniz:riga_fin,colonna)=zeros(riga_fin-riga_iniz+1,1)
Lo script diventa, quindi:
riga_iniz=48;
riga_fin=96;
colonna=5;
m=randi(100,96,5)
v=m(riga_iniz:riga_fin,colonna)
m(riga_iniz:riga_fin,colonna)=zeros(riga_fin-riga_iniz+1,1)
Se proprio vuoi / devi usare dei cicli "foR", ne basta uno solo:
[*] innanzitutto devi creare un contatore che userai come indice per accedere al vettore "v". Il contatore va inizializzato ad ogni iterazione
[*] all'interno del loop, incrementerai il contatore, copierai i valori della matrice nel vettore ed assegnerai "0" ai valori nella matrice
riga_iniz=48;
riga_fin=96;
colonna=5;
cnt=0;
for riga=riga_iniz:riga_fin
cnt=cnt+1;
v(cnt)=m1(riga,colonna);
m1(riga,colonna)=0;
end
Nel codice che hai scritto:
[*] il secondo loop non è necessario, basta far cominciare il primo loop dal valore della prima riga che ti interessa e farlo finire a quello dell'ultima riga che ti interessa
[*] sempre nel secondo loop, la variabile "i", l'indice del primo loop, non cambia, ovviamente, per cui, ad ogni iterazione assegni 49 volte il valore della quinta colonna della "i-esimsa" riga al vettore "v"
[*] inoltre, dal momento che ad ogni iterazione del primo loop, il valore di "j" (l'indice del secondo loop) varia da 1 a 49, sovrascriverai ogni volta i valori nel vettore "v"
Questo spiega perchè, come hai scritto,
ma nel vettore mi salva solo tante volte l'elemento in riga 96 ultima colonna
Dovresti provare ad eseguire il tuo codice in modalità debug per constatare quanto avviene.
Il debug del codice è sempre la prima cosa da fare quando lo stesso "non funziona".