[MatLab] Da vettore a matrice

D4lF4zZI0
Salve ragazzi, il mio problema è questo: supponiamo di avere un vettore ( riga o colonna non fa differenza ) con $n*h$ elementi ( con $n$ e $h$ maggiori di uno, ma non necessariamente uguali ) e di voler, da questo, creare una matrice $n*h$ con gli stessi elementi del vettore senza ricorrere a cicli for ( perchè con i cicli ci sono riuscito ), come si può fare? Mi spiego meglio con il seguente esempio:
$ b=[1,2,3,4,5,6,7,8,9,10] $
ed avere la matrice B:
$ B=( ( 1 , 6 ),( 2 , 7 ),( 3 , 8 ),( 4 , 9 ),( 5 , 10 ) ) $
Spero che qualcuno riesca ad aiutarmi, grazie

Risposte
Dante.utopia
Fatto con octave, ora non ho MatLab a portata di mano, ma penso che la sintassi sia uguale!

octave-3.2.4:1> b = [1,2,3,4,5,6,7,8,9,10]
b =

    1    2    3    4    5    6    7    8    9   10

octave-3.2.4:2> x = b(1,1:5)
x =

   1   2   3   4   5

octave-3.2.4:3> y = b(1,6:10)
y =

    6    7    8    9   10

octave-3.2.4:4> B = [y;x]
B =

    6    7    8    9   10
    1    2    3    4    5

octave-3.2.4:5> B = rot90(B)
B =

   10    5
    9    4
    8    3
    7    2
    6    1

octave-3.2.4:6> B = rot90(B)
B =

    5    4    3    2    1
   10    9    8    7    6

octave-3.2.4:7> B = rot90(B)
B =

    1    6
    2    7
    3    8
    4    9
    5   10

octave-3.2.4:8> 

D4lF4zZI0
Grazie :)

elgiovo
C'è un comando apposito che fa questo tipo di cose: reshape.

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