[Scilab]Trasformare matrice in vettore

filippograssi92
Salve ho un problema con un esercizio da realizzare in scilab. Dopo aver generato una matrice H mi si richiede di realizzare un vettore che contenga tutti gli elementi della matrice. Ora quello che ho scritto è:

H=round((10*rand(5,5))+2)
for i=1:5
 V=[H(i,:)]
 end
disp(H)
disp(V)

Tuttavia il ciclo for non funziona correttamente e quello che ottengo è semplicemente un vettore di dimensione 5 che contiene gli elementi dell'ultima riga della matrice H. Ad esempio:

H=
    9.    6.    4.     6.     8.   
    8.    9.    10.    10.    12.  
    9.    8.    5.     8.     12.  
    5.    8.    6.     10.    6.   
    6.    2.    11.    9.     5.   
 V=
    6.    2.    11.    9.    5.

Ottengo il risultato giusto se scrivo:

H=round((10*rand(5,5))+2)
for i=1:5
V=[H(1,:) H(2,:) H(3,:) H(4,:) H(5,:)]
end
disp(H)
disp(V)

Ma sono convinto che esista un modo più efficente, utilizzando il ciclo for.
Qualcuno può aiutarmi?

Risposte
apatriarca
Se scilab funziona come matlab dovrebbe essere sufficiente scrivere H(:) . In caso contrario puoi ovviamente anche usare qualcosa come reshape oppure concatenare tutte le righe o colonne della matrice..

filippograssi92
Ha funzionato! Grazie mille mi hai salvato!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.