Lavorare con le matrici

Questa sezione ti introduce ad altri modi per creare le matrici. SCILAB risulta molto potente quando manipola matrici  che gli permettono di manipolare la matrici nel suo assieme. 

  

Generare matrici

SCILAB possiede tre funzioni che generano matrici base:

 

  zeros            Tuti zero

  ones             Tutti uno

 rand              Elementi casuali (entrambi normali o uniformi)

Alcuni esempi

        zeros(3,3)

        ans =

        ! 0. 0. 0. !
        ! 0. 0. 0. !
        ! 0. 0. 0. ! 

        4*ones(3,3)

        ans =

        ! 4. 4. 4. !
        ! 4. 4. 4. !
        ! 4. 4. 4. ! 

        rand(4,4,'normal')

        ans =

        ! 1.4739763 .2546697 - 1.0327357 .0698768   !
        ! .8529775 - .6834217 - .9239258 - 1.3772844 !
        ! .7223316 .8145126 2.7266682  - .1728369     !
        ! .6380837 - .1884803 - 1.7086773 - .6019869 !

Carica (Load)

Il comando load legge files binari contenenti matrici generate da precedenti sessioni di SCILAB, oppure legge file di testo contenenti dati numerici. Il file di testo dovrebbe essere organizzato come una tavola rettangolare di numeri, separata da spazi con una riga per linea ed un numero eguale di elementi in ciascuna riga. Per esempio, esternamente  a SCILAB, creare un file di testo contenente le seguenti quattro linee:

 

magic = 
  ! 16.0     3.0     2.0    13.0 !
! 5.0 10.0 11.0 8.0 !
! 9.0 6.0 7.0 12.0 !
! 4.0 15.0 14.0 1.0 !
Salva il file con il nome magic_square.dat

                save magic_square 

Quindi il comando

	load magic_square.dat
Legge il file e crea una variabile, magic, contenente la nostra matrice di esempio.

 
 

 Files-SCI

Puoi creare le tue matrici usando i files sci, che sono file di testo che contengono del codice SCILAB. Basta semplicemente creare un file contenente i comandi che vorresti digitare sulla linea di comando del programma. Salva il file con un nome che finisca con il suffisso .sci.

 

Nota:  Per scrivere un file-sci, apri un "textpad" o blocconote e scrivi il codice nel file di testo. Quindi salvalo con l'estensione <filename.sci>. Sulla finestra comandi vai al menu' file e seleziona l'opzione exec e quindi seleziona il file che tu vuoi eseguire.

Per esempio,

Un file .sci che stampera' una onda sinusoidale, (usa il blocconote per scivere il codice)

// questa e' una linea di commento

// file .sci per plottare una onda sinusoidale

time = 0:.01:20;

plot(sin(time));

salva questo file come  My_prog.sci   e fai partire il programma prima menzionato. Puoi anche far partire il programma  nella finestra comandi digitando,

exec('nome_percorso')

per esempio.,

exec('E:\Scilab-2.6\work\My_prog.sci') 

 Eseguendo il programma, vedrai la sinusoide come nella finestra qui sotto

 

 

 Concatenazione 

La concatenazione e' un processo di unione di piccole matrice per comporne una grande. In fatti, puoi comporre la tua prima matrice concatenando i suoi singoli elementi. Il paio di parentesi quadre, [], e' l'operatore di concatenazione.

Per esempio:

a = [ 1 2 3 ]; b= [ 4 5 6]; c = [ 7 8 9];

d= [ a b c]

    d =

    ! 1. 2. 3. 4. 5. 6. 7. 8. 9. ! 

 

 

 

 Cancellare righe e colonne 

Puoi cancellare righe e colonne da una matrice usando solamento un paio di parentesi quadre. 

Per esempio,

    s = [ 1 2 3 4; 5 6 7 8; 9 10 11 12 ]

        s =

        ! 1. 2. 3. 4.       !
        ! 5. 6. 7. 8.       !
        ! 9. 10. 11. 12. ! 

    s(:,2) =[]

produce

        s =

        ! 1.   3.   4. !
        ! 5.   7.   8. !
        ! 9. 11. 12. ! 

Se cancelli un singolo elemento da una matrice, il risultato non e' piu' una matrice.

Quindi, se tu digiti una espressione come,

    s(1,3) =[]

        !--error 15
    submatrix incorrectly defined

ti risultera' un errore.

Comunque, usando un singolo subscript che cancella un singolo elemento o sequenza di elementi e ricomponendo  gli elementi rimasti in un vettore colonna, quindi,
   s(2:2:9) = [ ]
risulta che 
s  =

! 1. !
! 9. !
! 6. !
! 3. !
! 11. !
! 4. !
! 8. !
! 12. !