Laboratorio di MATLAB - Dipartimento di Ingegneria dell

Transcript

Laboratorio di MATLAB - Dipartimento di Ingegneria dell
DII – Università di Siena
Laboratorio di
MATLAB
Nicola Ceccarelli
Dipartimento di Ingegneria dell’Informazione,
Università di Siena, Italy
[email protected]
www.dii.unisi.it/∼control/teaching
Luglio 2005
Programma Lab. Matlab
Lun 04/07 ore 11-13 MATLAB di base: start up, funzioni di base
Mer 06/07 ore 14-18 MATLAB di base: M-files,grafica
Ven 08/07 ore 14-18 MATLAB di base: strutture, Functions
Lun 11/07 ore 14-18 toolbox: Symbolic, Esercitazione
Mer 13/07 ore 14-18 Simulink
Ven 15/07 ore 14-18 Esercitazione
Lun 25/07 ore 14-16 16-18 Idoneità
Contents
1 Start up
1.1 Vettori & Matrici
1
. . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2 OPS: Operatori e caratteri speciali . . . . . . . . . . . . . . . . . .
6
1.2.1 operatori aritmetici
. . . . . . . . . . . . . . . . . . . . . .
6
1.2.2 operatori relazionali . . . . . . . . . . . . . . . . . . . . . .
7
1.2.3 operatori logici
. . . . . . . . . . . . . . . . . . . . . . . .
8
1.3 Funzioni matriciali . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.1 matrici elementari . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.2 informazioni sulle matrici . . . . . . . . . . . . . . . . . . . 10
1.3.3 manipolazione di matrici . . . . . . . . . . . . . . . . . . . . 11
1.3.4 variabili speciali . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 funzioni elementari . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1 funzioni trigonometriche . . . . . . . . . . . . . . . . . . . . 15
1.4.2 funzioni esponenziali . . . . . . . . . . . . . . . . . . . . . 16
1.4.3 funzioni varie . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6 Esercizio1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7 tipi di dato multidimensionali . . . . . . . . . . . . . . . . . . . . . 20
1.7.1 cellarray
. . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.2 strutture
. . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.8 M-files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.1 script file . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.8.2 gestione M-files . . . . . . . . . . . . . . . . . . . . . . . . 26
1.8.3 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.9 Esercizio2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2 Grafica
32
2.1 Grafica 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.1.1 funzioni correlate . . . . . . . . . . . . . . . . . . . . . . . 34
2.1.2 Traiettorie in R3 . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.3 Superfici . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.1.4 Esercizio3
. . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.1.5 Esercizio4
. . . . . . . . . . . . . . . . . . . . . . . . . . 44
3 Istruzioni di controllo di flusso
45
3.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5 Esercizio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4 function
55
4.1 Esercizio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Esercizio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5 Symbolic toolbox
59
5.1 Start-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.2 calcolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.1 derivate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.2 integrali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.3 limiti
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3 algebra lineare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3.1 inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3.2 determinante . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3.3 autovalori . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.4 semplificazione di espressioni algebriche . . . . . . . . . . . . . . . 73
5.5 soluzioni di equazioni . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.6 grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.6.1 ezplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.6.2 ezsurf,ezmesh
. . . . . . . . . . . . . . . . . . . . . . . . 78
5.6.3 ezplot3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.7 Esercizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6 Simulink
81
6.1 start up
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.2 blocchi standard . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2.1 Sources
. . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2.2 Sinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2.3 Continuous . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.4 Discrete
. . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.5 Math Operation . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.6 Signal Routing
. . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.7 User Defined . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.8 Subsystems
. . . . . . . . . . . . . . . . . . . . . . . . . 90
6.3 Esercizio1 Simulink
. . . . . . . . . . . . . . . . . . . . . . . . . 91
6.4 Esercizio2 Simulink
. . . . . . . . . . . . . . . . . . . . . . . . . 92
7 Introduzione al Control toolbox
93
7.1 functions principali . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1.1 tf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1.2 zpk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.1.3 pole
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.1.4 zero
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.1.5 dcgain
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.1.6 impulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.1.7 step
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.1.8 ltiview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
DII
1
Start up
MATLAB = Matrix Laboratory
• aprire e chiudere Matlab
• interfaccia grafica
• directory path:
>>cd
>>cd ..
>>cd percorso_directory
>>cd(’percorso_directory’)
oppure usare current directory browser.
Laboratorio MATLAB
DII
2
• assegnazione di uno scalare
>> a=3;
>> a=3
a =
3
• work space
visualizzazione delle variabili nel workspace:
>>who visualizza tutte le variabili >>whos visualizza tutte le variabili con
descrizione di struttura
eliminazione delle variabili dal workspace:
>>clear
>>clear a;
oppure usare workspace browser.
• ans:
ans è il nome della risposta più recente (most recent answer), è quindi una
variabile che vive nel work space.
Laboratorio MATLAB
DII
3
• richiamo comandi:
↑ richiama ultimo comando
”s” +↑ richiama l’ultimo comando che inizia con la stringa ”s”.
oppure usare command history browser.
• salvataggio dati:
save filename var1 var2 ... crea il file filename.mat
contente i dati relativi alle variabili var1 var2 ... (filename deve essere
una stringa).
• caricamento dati:
load ’file_dati.mat’ carica nel workspace tutti i dati contenuti in
file_dati.mat.
Laboratorio MATLAB
DII
4
Vettori & Matrici
>>v=[1 2 3]; vettore riga
v =
1
2
3
>>v=[1;2;3]; vettore colonna
v =
1
2
3
Laboratorio MATLAB
DII
5
>>A=[1 2 3;4 5 6;7 8 9]; matrice
oppure
>>A=[1 2 3; ←4 5 6; ←7 8 9];
A =
1
4
7
2
5
8
3
6
9
Attenzione: nomi delle variabili case sensitive, si distingue tra maiuscole e
minuscole!!
Provare a generare matrici vettori scalari ...
Laboratorio MATLAB
DII
6
OPS: Operatori e caratteri speciali
operatori aritmetici
operatore
scalare
matrice
+
a+b
(A + B)ij = Aij + Bij
−
a−b
(A − B)ij = Aij − Bij
∗
a∗b
/
a/b =
\
a\b =
a
b
b
a
.∗
non interessante
./
non interessante
.\
non interessante
A∗B
A/B = A ∗ B −1
A\B = A−1 ∗ B
(A. ∗ B)ij = Aij ∗ Bij
(A./B)ij =
(A.\B)ij =
Aij
Bij
Bij
Aij
Attenzione: prodotti matriciali righe per colonne dimensioni concordi!!!
Laboratorio MATLAB
DII
7
operatori relazionali
• non esistono variabili booleane
• 0:falso
• tutto cioc̀he è 6= 0 è vero
operatori
significato
==
uguale
∼=
6=
>
<
>=
<=
-
-
-
-
• ogni operatore restituisce 1 se è vera la relazione 0 se è falsa.
• tra matrici necessarie dimensioni concordi, (AopB)ij = Aij opBij .
• matrici e scalari, (Aopb)ij = Aij opb
Laboratorio MATLAB
DII
8
operatori logici
simbolo
significato
&
and
|
or
∼
not
• aopb restituisce 1 se è vero 0 se è falso
• tra matrici necessarie dimensioni concordi, (AopB)ij = Aij opBij .
• matrici e scalari, (Aopb)ij = Aij opb
questi sono solo alcuni operatori, ce ne sono molti di più digitare al prompt
help ops
provare ad utilizzare gli operatori ...
Laboratorio MATLAB
DII
9
Funzioni matriciali
matrici elementari
• A=zeros(m,n) matrice di 0 con m righe e n colonne
• A=ones(m,n) matrice di 1 con m righe e n colonne
• A=eye(n) matrice identità di dimensione nxn
Laboratorio MATLAB
DII
10
informazioni sulle matrici
• [m,n]=size(A) ritorna le dimensioni m,n della matrice A
• M=length(A) ritorna la dimensione massima di A
• isequal(A,B) ritorna 1 se A=B, 0 altrimenti
Laboratorio MATLAB
DII
11
manipolazione di matrici
• A=diag(v);




A=


• a=min:passo:max
v1
0
0
v2
..
.
..
.
0
0
questa notazione definisce un vettore di n
x(1)=min
···
0
..
..
.
···
.
···
=
0
vn







max−min
passo
+ 1 elementi con
x(n)=max.
• sottomatrici
A(v_row,v_col) seleziona la sotto matrice corrispondente agli indici di
riga e di colonna definiti rispettivamente nei vettori v_row e v_col.
A(1:4,2:3) seleziona la sottomatrice 4 × 2 che ha elementi nelle righe
1 : 4 e colonne 2 : 3
Laboratorio MATLAB
DII
12
• B=A’ assegna a B il trasposto di A (B = AT )
• concatenazione orizzontale:
A=[B1,B2,...,Bn] oppure A=[B1 B2 ... Bn] assegna alla
matrice A la concatenazione orizzontale delle matrici B1,B2,...,Bn.
• concatenazione verticale:
A=[B1;B2;...;Bn] assegna alla matrice A la concatenazione verticale
delle matrici B1,B2,...,Bn.
• esempio:
>>B1=[1 2 3];
>>B2=[3 2 1];
>>A1=[B1 B2]
A1=
1 2 3 3 2 1
Laboratorio MATLAB
DII
13
>>A2=[B1;B2]
A2=
1 2 3
3 2 1
• sotto-assegnazione:
>>A2(1,:)=[1 1 1]
A2=
1 1 1
3 2 1
Laboratorio MATLAB
DII
14
variabili speciali
variabile
valore
ans
risposta più recente
pi
π
i
unità immaginaria
inf
infinito
NaN
not a number, per operazioni indefinite (tipicamente 00 )
molto di più... (help
elmat)
provare ...
Laboratorio MATLAB
DII
15
funzioni elementari
funzioni trigonometriche
sin(x)
asin(y)
cos(x)
acos(y)
tan(x)
atan(y)
atan2(y, x)
attenzione: x deve essere espresso in radianti!!!
Laboratorio MATLAB
DII
16
funzioni esponenziali
istruzione
valore
exp(x)
ex
log(x)
log(x)
log10(x)
log10 (x)
log2(x)
log2 (x)
√
x
sqrt(x)
xey
xˆy
x ∗ 10y
xy
Laboratorio MATLAB
DII
17
funzioni varie
molto di più (vedere help
istruzione
valore
abs(x)
|x|
imag(x)
Im(x)
real(x)
Re(x)
sign(x)
segno(x)
elfun)
provare....
Laboratorio MATLAB
DII
18
Help
• >>help
• >>help \"nome toolbox"
• >>help ops
• >>help elmat
• >>help elfun
• >>help "nome function" ritorna la sintassi esatta
• help html con browser.
Laboratorio MATLAB
DII
19
Esercizio1
1. Definire una matrice A 3x5 di zeri (utilizzando la function zeros), definire ora un
vettore a di dimensioni 1x5 e assegnarlo alla prima riga di A. Definire una
matrice B come la trasposta di A ed estrarne quindi la sottomatrice C 3x3
composta dalla 2,3,4 riga di B.
2. Siano A,B quelle definite al punto 1), Definire una nuova matrice D 5x3 diversa
dalla matrice nulla. Effettuare le tre moltiplicazioni :
M1=D*A
M2=A*D
M3=moltiplicazione elemento per elemento tra D e B
verificare con la function predefinita (size) che le dimensioni siano:
M1 ⇒ 5x5; M2 ⇒ 3x3; M3 ⇒ 5x3
salvare il workspace con le sole matrici A,B,C,M1,M2,M3
Laboratorio MATLAB
DII
20
tipi di dato multidimensionali
cellarray
• sono matrici i cui elementi sono array, ogni elemento puo’ avere dimensioni
diverse.
• definizione di un cell array:
C={A1 A2;B1 B2} assegna alla variabile C un cellarray di 2 × 2 elementi
corrispondenti alle matrici A1,A2,B1,B2
• indicizazzione:
D=C{i,j} assegna alla variabile D l’elemento i,j di C quindi un array
• concatenazione orizzontale:
D=[C {A3;B3}] assegna alla variabile D la concatenazione orizzontale di
C con il cellarray {A3;B3}
• concatenazione verticale:
Laboratorio MATLAB
DII
21
D=[C;{A3 B3}] assegna alla variabile D la concatenazione verticale di C
con il cellarray {A3 B3}
Laboratorio MATLAB
DII
22
strutture
• matrici i cui elementi sono accessibili attraverso campi testuali, ogni campo puo’
essere di tipo diverso con dimensioni diverse
• definizione di una struttura vuota (non obbligatorio):
S=struct(’nome’,{},’cognome’,{},’matricola’,{});
assegna alla variabile S una struttura vuota caratterizzata dai tre campi
nome cognome matricola
• assegnazione di valori ai campi:
>>S.nome=’mario’;
>>S.cognome=’rossi’;
>>S.matricola=652;
>>S
S =
nome: ’mario’
Laboratorio MATLAB
DII
23
cognome: ’rossi’
matricola: 652
• restituzione valori:
la notazione Struttura.campo restituisce il valore della struttura per il
campo specificato
>>a=S.matricola
a= 652
Laboratorio MATLAB
DII
24
M-files
- Matlab può eseguire sequenze di comandi da file. Questi file sono chiamati
M-file perché hanno estensione ”.m”.
- La maggior parte del codice che produrrete sarà creato e gestito tramite M-files.
- due tipi di M-files:
script files e function files
Laboratorio MATLAB
DII
25
script file
- Uno script file consiste di una sequenza di comandi Matlab.
- Se creo un file prova.m, e lo eseguo come un comando al prompt invocando:
>>prova (il nome del file senza l’estensione)
saranno eseguite tutte le istruzioni contenute nel file prova.m.
- Le variabili generate da uno script file sono globali e quindi andranno a finire
direttamente nel workspace della corrente sessione di Matlab con le naturali
conseguenze.
- Un M-files può richiamare un’altro M-files, oppure può richiamare se stesso in
modo ricorsivo.
Laboratorio MATLAB
DII
26
gestione M-files
stringhe:
s=’hello world’; quello che sta tra gli apici definisce la stringa che
viene assegnata ad s.
>>s
s= hello world
disp: i comandi disp(’hello
world’); e disp(s); producono lo stesso
risultato:
hello world
cioè fanno il display di una stringa.
error: il comando error(s); non solo fa il display della stringa s ma inoltre
interrompe l’esecuzione dello M-file.
input: il comando c=input(s); fa il display della stringa s ed inoltre aspetta la
Laboratorio MATLAB
DII
27
digitazione di un valore fino a che non viene premuto il tasto invio ←-. Tale
valore viene assegnato alla variabile c.
Laboratorio MATLAB
DII
28
String
-
S=’sequenza di caratteri’ definisce un vettore di caratteri
assegnato alla variabile S.
- funzioni correlate:
*
S=char(X);
ritorna una stringa di caratteri associati ai valori di X, in codifica ASCII
*
X=double(S);
ritorna i valori numerici associati alla stringa S, in codifica ASCII
*
S=[S1 S2 ... Sn];
concatenazione orizzontale di n stringhe
Laboratorio MATLAB
DII
29
*
S=strcat(S1,S2,...,Sn);
concatenazione orizzontale di n stringhe
*
S=strvcat(S1,S2,...,Sn);
concatenazione verticale di n stringhe
*
S={S1 S2 ... Sn};
crea un vettore le cui componenti sono n stringhe
*
ischar(S);
restituisce 1 se S è una stringa, 0 altrimenti
*
iscellstr(S);
restituisce 1 se S è un vettore di stringhe, 0 altrimenti
Laboratorio MATLAB
DII
30
*
S=sprintf(format,A);
genera stringhe con il comando C-style sprintf().
>> s=sprintf(’sono passate %g ore ...’,2)
s =
sono passate 2 ore ...
Laboratorio MATLAB
DII
31
Esercizio2
Creare uno scriptfile eseguibile in ambiente matlab, che richiede:
1. digitazione in ingresso nome e cognome (usare la function input)
2. concatenare nome e cognome verticalmente orizzontalmente nelle quattro
combinazioni possibili assegnandole a quattro diverse variabili
3. generare i vettori dei codici ascii relativi alle lettere del nome e cognome
4. utilizzando la function predefinita flipdim(v,2) (help flipdim) rigirare
questi ultimi e utilizzando char calcolarne le stringhe associate s1 s2.
5. In uscita il file deve fare il display di due frasi...
il mio nome è s1
il mio cognome è s2
6. fare in oltre la media dei codici dei caratteri nome e cognome e generare la
stringa s3 che contiene il carattere relativo
Laboratorio MATLAB
DII
32
Grafica
- Grafica 2D
- Traiettorie in R3
- Superfici
Laboratorio MATLAB
DII
33
Grafica 2D
si rappresentano funzioni del tipo y
ex. due funzioni c(t)
= f (x)
= cos(t) e s(t) = sin(t)
definizione di un vettore temporale t:
>>t=0:0.2:4*pi;
generazione delle due funzioni calcolate su t:
>>c=cos(t);
>>s=sin(t);
grafica:
1
>>figure;
>>plot(t,c);
>>figure;
>>plot(t,s);
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0
1
2
3
4
5
6
7
Laboratorio MATLAB
DII
34
funzioni correlate
-
h=figure genera una nuova istanza dell’oggetto figura, ed assegna alla
variabile h un handle a tale figura.
-
close all chiude tutte le figure aperte
-
plot(x,y) plotta su grafico xy tutte le coppie(xi , yi ) congiungendo i punti
successivi con linea.
-
plot(x,y,’tratto|simbolo|colore’) definisce il tipo di tratto
che congiunge punti successivi, il simbolo associato ad ogni punto, il colore.
Laboratorio MATLAB
DII
35
carattere
colore
carattere
simbolo
r
rosso
carattere
tratto
+
crocetta
g
verde
-
linea
o
cerchietto
b
blue
–
trattini
*
asterisco
c
celeste
:
puntini
x
x
m
magenta
-.
tratto punto
d
rombo
y
giallo
s
quadrato
k
nero
w
bianco
molto di più help plot
Laboratorio MATLAB
DII
36
-
hold on abilita la sovrapposizione di più grafici all’interno della stessa figura
-
hold off disabilita la sovrapposizione di più grafici all’interno della stessa
figura (una nuova istanza di plot elimina tutto quello che era stato tracciato
precedentemente sulla figura di riferimento).
-
legend(S1,S2,...) aggiunge la legenda in base al numero di tracce,
ad ogni traccia associa la stringa Si corrispondente
-
title(Stitle) associa la stringa Stitle al titolo della figura
-
xlabel(Sx) associa una stringa Sx all’asse x
-
ylabel(Sy) associa una stringa Sy all’asse y
Laboratorio MATLAB
DII
37
-
axis([xmin xmax ymin ymax]) setta i limiti sugli assi
-
axis equal setta le stesse unità di misura e gli stessi ”aspect ratio”
-
axis square rende la regione di rappresentazione quadrata
-
grid on aggiunge la griglia alla figura
-
subplot(m,n,p) crea m×n finestre nella stessa figura e attiva la p-esima
da sinistra in alto
Laboratorio MATLAB
DII
38
sin(x) axis equal
cos(x) axis square
1
4
0.5
2
0
0
−2
−0.5
−4
5
−1
10
tan(x) con uso di axis
0
5
10
15
sin(x) tan(x) cos(x) con legenda
5
4
sin
cos
tan
3
asse y
0
2
1
0
−1
−2
0
5
asse x
10
Laboratorio MATLAB
DII
39
Traiettorie in R3
si rappresenta funzioni f (t)
: R → R3
>>t=0:0.01:4*pi;
plot3(fx,fy,fz) visualizza le terne
(fx i , fy i , fz i ) nel sistema di riferimento >>fx=sin(5*t);
>>fy=cos(5*t);
xyz
>>fz=t;
>>plot3(fx,fy,fz);
15
10
5
0
1
0.8
0.6
1
0.4
0.2
Attenzione: le dimensioni sempre
0.5
0
−0.2
−0.4
−0.6
−0.8
0
−0.5
−1
−1
concordi!
Laboratorio MATLAB
DII
40
Superfici
si rappresenta z
= f (x, y) : R2 → R
surf(X,Y,Z) genera superfici
mesh(X,Y,Z) genera griglie superficiali
osservazione:
z deve essere definito per ogni coppia possibile (x, y) ∈ D(f )
Laboratorio MATLAB
DII
41
si definiscano due vettori:
x=0:0.2:2*pi; y=0:0.2:4*pi;
una funzione generale z
= f (x, y) assume valori su tutte le possibili coppie
(x, y)
da cui è evidente che dim(z)
= dim(x) × dim(y)
[X,Y]=meshgrid(x,y); genera le matrici:
X contiene copie per righe di x tante volte quanto è la dimensione di y
Y contiene copie per colonne di y tante volte quanto è la dimensione di x
a questo punto è possibile definire Z:
Z = f (X, Y ); (senza nessun problema di dimensioni, prodotto cartesiano di
x ed y !)
Laboratorio MATLAB
DII
42
ex.
>>Z=sin(X+Y);
>>surf(X,Y,Z);
>>mesh(X,Y,Z);
colormap definisce la colorazione del surf o del mesh.
nelle demo ampia descrizione dei comandi di grafica 3D.
Laboratorio MATLAB
DII
43
Esercizio3
1. definire e plottare la seguente funzione f (t)
=

 t2
per t
≤ 1,
1/t per t > 1.
2. calcolare le derivate sia numericamente che in forma analitica, plottarne quindi i
valori
3. utilizzando subplot plottare nella stessa, la differenza tra le due derivate
precedentemente calcolate insieme ai tre precedenti grafici. Si utilizzino colori e
tratti diversi per ognuno.
Laboratorio MATLAB
DII
44
Esercizio4 Calcolare la funzione f (x, y) : R2 → R definita come il quadrato
della distanza della posizione x, y dalla circonferenza centrata in un generico Xc di
raggio r . Utilizzando surf e mesh tracciarne l’andamento grafico.
Laboratorio MATLAB
DII
45
Istruzioni di controllo di flusso
for
while
if
case
Laboratorio MATLAB
DII
46
for
sintassi:
···
for variabile=espressione
istruzioni
end
···
Laboratorio MATLAB
DII
47
ex. 1
n=10; x=[]; for i=1:n
x=[x,iˆ2];
end
ex. 2
passo=0.1
t=0.1:passo:100;
f=log(t);
plot(t,f,’-m’);
for i=2:length(t)
dfdt(i-1)=(f(i)-f(i-1))/passo;
end
hold on
plot(t(1:length(t)-1),dfdt,’:b’);
Laboratorio MATLAB
DII
48
while
sintassi:
···
while relazione
istruzioni
end
···
Laboratorio MATLAB
DII
49
ex. 3
n=0;
a=6;
while (n<exp(a))
n=n+1;
end
ex. 4
n=6;
A=magic(n);
B=zeros(n);
C=[];
k=6;
while (k>0)
B(6-k+1,:)=A(k,:);
C=[C A(:,k)];
k=k-1;
end
Laboratorio MATLAB
DII
50
if
sintassi:
···
if relazione1
istruzioni1
elseif relazione2
istruzioni2
else
istruzioni3
end
···
Laboratorio MATLAB
DII
51
ex. 5
k=input(’dammi un numero maggiore di cento :’);
str=ischar(k);
if k>100 & ˜str
disp(’bravo!’);
delta=100-k
elseif k>50 & ˜str
disp(’ci sei quasi!’)
delta=100-k
elseif k>0 & ˜str
disp(’mica tanto vicino!’);
delta=100-k
elseif str
disp(’ho detto NUMEROOOOO’);
else
disp(’allora sei duro!’);
delta=100-k
end
Laboratorio MATLAB
DII
52
case
sintassi:
···
switch espressione di switch
case case valore
istruzioni
case {case valore1,case valore2,case valore3,...}
istruzioni
otherwise
istruzioni
end
···
Laboratorio MATLAB
DII
53
ex. 6
k=input(’dammi un numero da 1 a 3 :’);
switch k
case 1
disp(’bravo!’);
delta=100-k
case {2,3}
disp(’esagerato!’)
delta=100-k
otherwise
disp(’allora sei duro!’);
delta=100-k
end
Laboratorio MATLAB
DII
54
Esercizio 5
1. Generare una matrice random di 100×100 utilizzando il comando rand (help
rand)
2. estrarne la diagonale principale utilizzando un doppio ciclo for, assegnarla ad
un vettore v1
3. estrarne la contro diagonale utilizzando while, assegnarla ad un vettore v2
4. plottare i due vettori sulla stessa figura.
Laboratorio MATLAB
DII
55
function
sono script file con dichiarazione di funzione
prendono parametri in ingresso e restituiscono parametri in uscita:
%help funzione pippo
function [A,E,O,...]=nomefunction(B,C,D,...);
...
istruzioni
...
al nome del file viene associato un comando Matlab
Attenzione: discrepanza tra nome file e nome function!!
Laboratorio MATLAB
DII
56
ex. 5
%z=somma(x,y) fa la somma di due scalari x,y
function [s,d]=sommadiff(x,y);
s=x+y;
d=x-y;
se il file viene salvato come sommadiff.m, posso utilizzare la function
sommadiff:
>>[a,b]=sommadiff(3,5)
>>a=8
>>b=-2
Attenzione: perchè matlab riconosca il nome di una function come comando è
necessario che il file sia nella current directory
Laboratorio MATLAB
DII
57
Esercizio 6
creare una function che dato in ingresso un numero x produce il fattoriale x!.
Laboratorio MATLAB
DII
58
Esercizio 7
Scrivere una funzione che prende in ingresso una matrice M quadrata e restituisce
l’inversa di M (naturalmente la funzione Matlab inv può essere utilizzata solo per
controllare i risultati). La seguente formula indica come calcolare ogni elemento
della matrice inversa:
M
−1
1
(−1)i+j det(Mji )
(i, j) =
det(M )
dove Mji la matrice M decurtata della j -esima riga e della i-esima colonna.
Laboratorio MATLAB
DII
59
Symbolic toolbox
Symbolic toolbox fornisce gli strumenti per gestire il calcolo simbolico in
ambiente MatLab
Calcolo:
- derivate
- integrali
- limiti
Algebra Lineare:
- inversa
- determinante
- autovalori
Laboratorio MATLAB
DII
60
Semplificazioni di espressioni algebriche
Soluzioni di equazioni
Grafica
Laboratorio MATLAB
DII
61
Start-up
• dichiarazione di variabili simboliche:
>>syms x y z
genera nel workspace le variabili simboliche x
y z
• passaggio da double a variabili simboliche:
utilizzando il comando sym(nome_variabile_senza_apici) si
trasforma un double in una variabile simbolica (istanza di un oggetto simbolico).
>>A=zeros(4);
>>B=sym(A)
B=
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
Laboratorio MATLAB
DII
62
• passaggio da variabile simbolica a double:
se l’oggetto simbolico è composto solo da numeri si utilizza il comando
double
>>C=double(B)
C =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Laboratorio MATLAB
DII
63
• funzioni:
>>syms x y z
>>f=1/exp(sin(xˆ2+yˆ2))
la variabile f è ora un oggetto simbolico che rappresenta f (x)
=
1
esin(x2 +y2 )
Laboratorio MATLAB
DII
64
calcolo
derivate
si utilizza il comando:
diff(var_fun,var_di_der,nth_der):
ex1.
>>syms x a
>>s=sin(a*x);
>>dsdx=diff(s,x,1)
ans =
cos(a*x)*a
>>dsdx=diff(s)
ans =
cos(a*x)*a
Laboratorio MATLAB
DII
65
ex2.
>> diff(f,x,4)
ans =
16/exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)ˆ4*xˆ4+96/
exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)ˆ2*xˆ4*sin(xˆ2+yˆ2)
-48/exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)ˆ3*xˆ2+48/
exp(sin(xˆ2+yˆ2))*sin(xˆ2+yˆ2)ˆ2*xˆ4144/exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)*xˆ2*sin(xˆ2+yˆ2)
-64/exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)ˆ2*xˆ4+12/
exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)ˆ2-16/
exp(sin(xˆ2+yˆ2))*sin(xˆ2+yˆ2)*xˆ4+48/
exp(sin(xˆ2+yˆ2))*cos(xˆ2+yˆ2)*xˆ2+12/
exp(sin(xˆ2+yˆ2))*sin(xˆ2+yˆ2)
Laboratorio MATLAB
DII
66
integrali
R
I(x) = f (x)dx si utilizza il comando:
fint=int(var_fun,var);
cerca di trovare quella variabile fint t.c diff(fint,x) produce
var_fun
Rb
c = a f (x)dx si utilizza il comando:
c=int(var_fun,var,a,b); calcola l’integrale definito.
ex1.
>>syms x a
>>s=sin(a*x);
>> int(s,x,0,2*pi/a)
ans =
0
Laboratorio MATLAB
DII
67
ex2.
>>syms x a
>>s=sin(a*x);
>> int(s,x)
ans =
-1/a*cos(a*x)
Laboratorio MATLAB
DII
68
limiti
limx→x+/− f (x) si utilizza il comando:
0
k=limit(var_fun,var,val,r_or_l); calcola il limite della
funzione varfun per la variabile var che tende al valore val tendendo da
destra se r_or_l=’right’ da sinistra se r_or_l=’left’
ex.1
>>syms x
>> f2=abs(x);
>> limit(diff(f2),x,0,’left’)
ans =
-1
>> limit(diff(f2),x,0,’right’)
ans =
1
Laboratorio MATLAB
DII
69
algebra lineare
inversa
data una matrice simbolica A quadrata, voglio determinare B
= A−1 :
B=inv(A_symb);
ex.1
>> syms a b c d
>> A=[a b;c d]
A =
[ a, b]
[ c, d]
>> B=inv(A)
B =
[ d/(a*d-b*c), -b/(a*d-b*c)]
[ -c/(a*d-b*c), a/(a*d-b*c)]
Laboratorio MATLAB
DII
70
determinante
data una matrice simbolica A quadrata ne voglio calcolare il determinante:
d=det(A);
ex1.
>>syms a b c d e f g h i
>>A=[a b c;d e f; g h i]
A =
[ a, b, c]
[ d, e, f]
[ g, h, i]
>> det(A)
ans =
i*a*e-a*f*h-i*d*b+d*c*h+g*b*f-g*c*e
Laboratorio MATLAB
DII
71
autovalori
data una matrice simbolica A quadrata, ne voglio calcolare gli autovalori:
eig(A)
ritorna il vettore le cui componenti sono gli autovalori di A
ex1.
>> syms
>> A=[a
A =
[ a, b,
[ c, d,
[ 0, 0,
a b c d
b 0;c d 0;0 0 3]
0]
0]
3]
>> v=eig(A)
Laboratorio MATLAB
DII
72
v =
[
3]
[1/2*a+1/2*d+1/2*(aˆ2-2*a*d+dˆ2+4*b*c)ˆ(1/2)]
[1/2*a+1/2*d-1/2*(aˆ2-2*a*d+dˆ2+4*b*c)ˆ(1/2)]
Laboratorio MATLAB
DII
73
semplificazione di espressioni algebriche
• f=simple(var_fun): cerca tra tutte le tecniche di semplificazione quella
che produce la stringa più corta.
• f=simplify(var_fun): semplificazione standard e non solo.
• f=subs(var_fun,{var1 var2 ...},{val1 val2 ...})
sostituisce alle variabili var1,var2,... i valori corrispondenti
val1,val2,...
ex1.
>> syms
>> A=[a
A =
[ a, b,
[ c, d,
[ 0, 0,
a b c d
b 0;c d 0;0 0 3]
0]
0]
3]
Laboratorio MATLAB
DII
74
>>v=subs(eig(A),{b,c},{0,0})
v =
[
3]
[1/2*a+1/2*d+1/2*(aˆ2-2*a*d+dˆ2)ˆ(1/2)]
[1/2*a+1/2*d-1/2*(aˆ2-2*a*d+dˆ2)ˆ(1/2)]
>>simple(v)
ans =
[ 3]
[ a]
[ d]
Laboratorio MATLAB
DII
75
soluzioni di equazioni
f (x) = 0, data una funzione in forma di variabile simbolica var_fun se ne
può determinare gli zeri:
z=solve(var_fun,var)
che ne determina le soluzioni rispetto alla variabile var
ex.1
>> syms x a b c
>> f=a*xˆ2+b*x+c
f =
a*xˆ2+b*x+c
>> solve(f,x)
ans =
[ 1/2/a*(-b+(bˆ2-4*c*a)ˆ(1/2))]
[ 1/2/a*(-b-(bˆ2-4*c*a)ˆ(1/2))]
Laboratorio MATLAB
DII
76
ex.2
>> syms x a
>> f2=log(x)-1/5*xˆ2-a
f2 =
log(x)-1/5*xˆ2-a
>> solve(f2,x)
ans =
1/2*(-2*lambertw(-2/5*exp(2*a)))ˆ(1/2)*5ˆ(1/2)
Laboratorio MATLAB
DII
77
grafica
ezplot
ezplot: traccia le funzioni f (x) : R :→ R
ezplot(var_fun,[min_val max_val])
traccia la funzione var_fun nel dominio [min_val max_val]
ex.1
>>syms x
>> f=5*sin(x)ˆ2+xˆ2;
>> ezplot(f,[-pi pi])
Laboratorio MATLAB
DII
78
ezsurf,ezmesh
ezsurf(var_fun,[xv_min xv_max yv_min yv_max])
traccia superfici per funzioni f (x, y) : R2 → R sul dominio
[xv_min xv_max yv_min yv_max]
ezmesh(var_fun,[xv_min xv_max yv_min yv_max])
traccia griglie superficiali per funzioni f (x, y) : R2 → R sul dominio
[xv_min xv_max yv_min yv_max]
ex.1
>>syms x y
>>ezsurf(sin(x+y),[-2*pi 2*pi -2*pi 2*pi])
>>ezmesh(sin(x+y))
Laboratorio MATLAB
DII
79
ezplot3
ezplot3(var_x,var_y,var_z,[t_min t_max]) traccia
traiettorie f (t) : R → R3
ex.1
>> syms t
>> ezplot3(sin(t),t,cos(t),[-5*pi 5*pi])
Laboratorio MATLAB
DII
80
Esercizio
1. definire la funzione f (x, y, z)
= exp(sin(x + y)) + z 2 come oggetto
simbolico
2. a partire da f (x) costruirne Gradiente ed Hessiano
3. plottare f (x, y)
= f (x, y, z)|z=3
4. plottare f (y, z)
= f (x, y, z)|x=2y
5. plottare f (x, y)
= f (x, y, z)|x=y2 ;z=√(x)
Laboratorio MATLAB
DII
81
Simulink
Simulink è un pacchetto software che permette di simulare ed analizzare sistemi le
cui uscite variano in funzione del tempo.
Simulink si basa su una procedura in due passi:
• Creazione di un modello grafico del sistema tramite utilizzo dell’editor di modelli
Simulink. In questa fase l’utente specifica le relazioni matematiche, che
intercorrono tra gli ingressi e le uscite del sistema.
• Utilizzo di Simulink per la simulazione delle propretà del sistema in un
particolare intervallo temporale.
Laboratorio MATLAB
DII
82
start up
- creare un nuovo modello
- aggiungere i blocchi necessari (drag & drop)
- linkare i blocchi (drag & drop)
- settare il tempo di simulazione
- salvare il modello
- lanciare la simulazione
Laboratorio MATLAB
DII
83
blocchi standard
• Sources
• Sinks
• Continuous
• Discrete
• Math Operation
• Signal Routing
• User Defined
• Subsystems
Laboratorio MATLAB
DII
84
Sources
Constant: genera un segnale costante con valore regolabile.
Ramp: genera il segnale rampa con pendenza regolabile.
Random Num.: genera un segnale random con distribuzione normale e varianza regolabile.
Sine: genera il segnale A · sin(ω · t + φ) con ampiezza seno e frequenza regolabili.
Step: genera il segnale gradino con valore iniziale finale e istante di attivazione
regolabili.
Clock: genera in uscita come segnale il tempo di simulazione.
From Worksp.: genera in uscita un segnale a partire da una variabile definita nel workspace
var_in=[sig_time signal], dove sig_time e signal sono
due vettori colonna rappresentanti il tempo di simulazione e il segnale.
>>t=1:0.01:10;
>>var_in=[t’ sin(t)’];
Laboratorio MATLAB
DII
85
Sinks
Scope: visualizza l’andamento temporale del segnale in ingresso.
To File: dato un segnale in ingresso genera un file “*.mat” che contiene una variabile
costituita da due righe, rispettivamente per il tempo di simulazione e per il
segnale.
To Workspace: dato un segnale in ingresso genera una variabile di tipo struttura od array in
uscita, contenente il segnale ed eventualmente il tempo di simulazione.
XY Graph: dati due segnali in ingresso rappresentanti il segnale delle ascisse e delle
ordinate, genera la traiettoria in R2 che questi rappresentano.
Laboratorio MATLAB
DII
86
Continuous
Derivative: genera la derivata del segnale di ingresso.
Integrator: genera l’integrale del segnale di ingresso.
Transfer Fcn: blocco che simula il sistema specificato tramite funzione di trasferimento
f (s) =
N (s)
D(s) .
Zero-Pole: blocco che simula il sistema specificato tramite funzione di trasferimento definita
a partire da poli e zeri.
State-Space: blocco che simula il sistema specificato tramite la sua rappresentazione di stato.
Laboratorio MATLAB
DII
87
Discrete
Unit delay: ritarda il segnale tempo-discreto in ingresso di un istante di campionamento.
Discrete Int: genera l’integrale tempo-discreto del segnale di ingresso.
Discrete T. Fcn: blocco che simula il sistema tempo-discreto specificato tramite funzione di
trasferimento
f (z) =
N (z)
D(z) .
Discrete Z-P: blocco che simula il sistema tempo-discreto specificato tramite funzione di
trasferimento definita a partire da poli e zeri.
Discrete S-S: blocco che simula il sistema tempo-discreto specificato tramite la sua
rappresentazione di stato.
Laboratorio MATLAB
DII
88
Math Operation
Abs: genera come segnale di uscita il valore assoluto di quello di ingresso.
Gain: genera come segnale di uscita il segnale di ingresso moltiplicato per un
parametro k regolabile.
Sum: genera come segnale di uscita la somma degli ingressi, con numero di ingressi
e segni regolabili.
Trigonometric: genera come segnale di uscita la funzione trigonometrica specificata, del
segnale di ingresso.
Math fun.: genera in uscita una delle function elementari predefinite in Matlab, calcolata sul
segnale di ingresso.
Matrix Concat.: genera in uscita la concatenazione di più segnali in ingresso.
Matrix Gain: genera in uscita il segnale in ingresso moltiplicato per una data matrice.
Laboratorio MATLAB
DII
89
Signal Routing
Mux: genera in uscita un unico segnale multiplo (bus), costituito dall’unione di più
segnali di ingresso.
Demux: genera pi segnali in uscita a partire da un unico segnale multiplo (bus) in
ingresso.
Laboratorio MATLAB
DII
90
User Defined
Fcn: permette di specificare un segnale di uscita a partire da una qualsiasi funzione
del segnale di ingresso (u), scritta in linguaggio Matlab.
Matlab Fcn: permette di specificare un segnale di uscita a partire da una qualsiasi funzione
Matlab predefinita del segnale di ingresso (u).
Subsystems
Subsystem: permette all’utente di costruire sotto blocchi simulink.
Laboratorio MATLAB
DII
91
Esercizio1 Simulink
1. Creare uno schema a blocchi che:
• genera una rampa di pendenza 5, con display
• alla rampa somma uno scalare k2 variabile nel workspace, e ne fa display
congiuntamente con la precedente
2. Generare uno schema a blocchi che:
• genera il segnale y(t) = sin(2t) su un orizzonte t ∈ [0, 4π]
• riproduce il segnale z1 (t) =
d
dt y(t)
y(t + π2 )
• riproduce il segnale z3 (t) =
R
• riproduce il segnale z2 (t) =
y(t)dt
Laboratorio MATLAB
DII
92
Esercizio2 Simulink
Si consideri un’asticella rotante alla cui estremità è posta una massa m
= 2Kg. La
lunghezza dell’asticella è soggetta alla seguente dinamica:
¨l = − k l + k l0 .
m
m
con l0
= 2m e k = 3N/m.
˙ = 0 e l(0) = 1m.
Con condizioni iniziali l(0)
L’asticella ruota con frequenza ω = 2.5rad/sec.
È richiesto di:
• costruire un modello simulink di tale sistema in cui venga fatto il display
dell’andamento temporale della lunghezza dell’asticella, della coordinata x ed y
della massa.
• dare rappresentazione grafica della traiettoria xy relativa alla posizione della
massa.
Laboratorio MATLAB
DII
93
Introduzione al Control toolbox
functions principali
tf sintassi: sys=tf(num,den)
output:
sys un Transfer Function object
input:
num vettore contente i coefficienti del numeratore ordinati in modo decrescente
rispetto alla potenza di s a cui sono relativi
input:
den vettore contente i coefficienti del denominatore ordinati in modo
decrescente rispetto alla potenza di s a cui sono relativi
2s − 2
S= 2
s + 4s + 3
>>S=tf([2 -2],[1 4 3]);
Laboratorio MATLAB
DII
94
sys.num{1}=numeratore
sys.den{1}=denominatore
Laboratorio MATLAB
DII
95
zpk sintassi: sys=zpk(z,p,k)
output:
sys un Transfer Function object
input:
z vettore contente gli zeri della funzione di trasferimento
input:
p vettore contenente i poli della funzione di trasferimento
input:
k guadagno della funzione di trasferimento
S=k
(s − z1 ) · · · (s − znz )
(s − p1 ) · · · (s − pnp )
Laboratorio MATLAB
DII
96
>>S=zpk(1,[-3 -1],2);
sys.z{1}=zeri
sys.p{1}=poli
sys.k{1}=guadagno
Laboratorio MATLAB
DII
97
pole sintassi: p=pole(sys)
input:
output:
sys un Transfer Function object
p vettore contenente i poli della funzione di trasferimento
>> pole(S)
ans =
-3
-1
Laboratorio MATLAB
DII
98
zero
sintassi:
z=zero(sys)
sintassi: [z,k]=zero(sys)
input:
sys un Transfer Function object
output:
z vettore contenente gli zeri della funzione di trasferimento
output:
k guadagno
>> [z,k]=zero(S)
z =
1
k =
2
Laboratorio MATLAB
DII
99
dcgain sintassi: dc=dcgain(sys)
input:
output:
sys un Transfer Function object
dc guadagno in continua (dc = S(0))
>> dc=dcgain(S)
dc =
0.6667
Laboratorio MATLAB
DII
100
impulse
sintassi: impulse(sys)
sintassi: impulse(sys,t)
input:
sys un Transfer Function object
input:
t vettore che specifica l’orizzonte temporale
display: viene visualizzato l’andamento temporale della risposta impulsiva
sistema
W (s)
u(t) = δ(t)
U (s) = 1
y(t) = L−1 (W (s))
Y (s) = W (s)U (s)
>> impulse(S,0:0.05:10)
nota:la risposta impulsiva è l’antitrasformata della funzione di trasferimento
Laboratorio MATLAB
DII
101
step
sintassi:
step(sys)
sintassi: step(sys,t)
input:
sys un Transfer Function object
input:
t vettore che specifica l’orizzonte temporale
display: viene visualizzato l’andamento temporale della risposta impulsiva
sistema

 0 t<0
u(t) =
 1 t≥0
y(t) = L−1 ( Ws(s) )
W (s)
U (s) =
1
s
Y (s) = W (s)U (s)
>> impulse(S,0:0.05:10)
Laboratorio MATLAB
DII
102
ltiview
sintassi:
>>ltiview
GUI Graphical User Interface per l’analisi di sistemi
Laboratorio MATLAB

Documenti analoghi

Introduzione a Matlab e Simulink

Introduzione a Matlab e Simulink lineare per l’asse y semilogy grafico con scala logaritmica per l’asse y e lineare per l’asse x La struttura dei comandi è plot(x1,y1,x2,y2,…) E’ possibile specificare il colore e il tipo di linea ...

Dettagli

Mini Manuale Matlab

Mini Manuale Matlab Facendo precedere l'operatore “^” da un punto in pratica eleviamo a potenza n-esima i singoli elementi aij della matrice A. La matrice risultato è posta in B:

Dettagli

Il sistema MATLAB

Il sistema MATLAB produce il messaggio di errore ??? error using = = > +Matrix dimension must agree >>x*y produce il messaggio di errore ??? error using = = > *Inner matrix dimension must agree Si può infatti effett...

Dettagli

Introduzione a MATLAB

Introduzione a MATLAB da quel momento appare sulla linea di comando • what: what elenco di tutte le funzioni MATLAB nell’area di lavoro (estensione .m) e dei file di dati che sono stati salvati (estensione .mat) Version...

Dettagli