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 !
magic_square.dat
.
save magic_square
Quindi il comando
load magic_square.datLegge 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. !