Estratto del documento

IMPORT TOOL

HOME

IMPORT DATA

selezione file -> APRI

COLUMN DELIMITERS (separazione delle colonne)

CASELLA -> TAB

VIRGOLA -> COMMA

SPAZIO -> SPACE

PUNTO VIRGOLA -> SEMICOLON

DELIMITER OPTIONS (separazione decimali)

. -> PERIOD

, -> COMMA

in IMPORTED VARIABLE scegli tipologia:

COLUMN VECTORS: variabile diversa per ogni colonna. N x 1.

inserire nome nella prima riga

NUMERIC MATRIX: dati selezionati tramite SELECTION/HISTORY accorpati in unica matrice nominata in NAME.

STRING ARRAY: dati selezionati importati in una matrice di stringhe nominata in NAME.

VARIABLE NAME ROW: seleziona la riga in cui ho i nomi delle variabili quando uso COLUMN VECTORS

INPUT DATI DA TASTIERA

m = input( " inserire valore da tastiera: " );

il valore viene inserito nella variabile m.

s = input( " inserire stringa: " , "s" );

il testo digitato viene salvato come stringa

OUTPUT FORMATTATO

  • STAMPA A VIDEO

fprintf(1, "testo: %g /n", variabile)

es: nome = "bob";eta = 20;

fprintf(1, "lo studente %s ha %g anni. /n", nome, eta)

>> lo studente bob ha 20 anni.

  • STAMPA DI PIU ELEMENTI DI VETTORE

nomi = ["bob", "andrea", ....]eta = [20, 25, ....]

for i = 1:m

fprintf(1, "%s %g anni", nomi(i), eta(i))

end

>> bob 20 anniandrea 25 anni::

  • STAMPA SU FILE DI TESTO

fid = fopen("nomefile.txt", "w");

fprintf(fid, "testo....%g... /n", variabile);

fclose(fid);

DA METTERE FUORIDAI CICLI

FUNZIONI

function y = nomefunzione(x)

OUTPUT

NOME FUNZIONE

INPUT

es: funzione che trasforma una matrice di ore, minuti, secondi in secondi

function t = Tempo2secondi(tempo);

h = tempo(1);

m = tempo(2);

s = tempo(3);

t = s + m*60 + h*3600;

Testarla nel command windows non con run

cicli

  • for

for variabile = intervallo

comando

end

es: ripetere comando di stampa a schermo per 5 volte

for i = 1:5

disp("RIPETIZIONE:")

disp(i)

end

>> RIPETIZIONE:

1

RIPETIZIONE:

2

RIPETIZIONE:

3

RIPETIZIONE:

4

RIPETIZIONE:

5

creare una tabella con ciclo for.

for i = 1:length(materie)

fprintf(1, "MATERIA: %s /t ORA: %og \n,materie(i),ora(i))

>> MATERIA: geometria ORA:10

MATERIA: inglese ORA:12

...

A = 0

for i = 1 : m

A = A + elements(i)

end

if / else

if espressione logica

istruzione se vera

else

istruzione se falsa

end

if espressione logica (1)

istruzione se vera

else if espressione logica (2)

istruzione se espressione logica (1) falsa

else

istruzione se tutte false

end

scrivere l'espressione 1 < x < 5

x >= 1 & x <= 5

AND &

OR |

NOT ~ (ALT +126)

while

wile

espressione

deve avere un valore iniziale

comandi da ripetere finché vera

end

es: calcolo interessi fino a 2000

totale = 1000 ;

anno = 0 ;

DICHIARO PRIMA LE VARIABILI INIZIALI

while totale < 2000

totale = totale * 1.08

anno = anno + 1

end

ANALOGO A SCRIVERE:

totale = 1000 ;

for anno = 1:100

totale = totale * 1.08

if totale > 2000

se supera 2000 interrompe il ciclo

break

end

end

COMANDI PER ARRAY pag 59-60

sum(a) somma gli elementi nelle colonne

sum(condizione) somma gli elementi che soddisfano la condizione

A = [ 1, -3, 5, -2, -6

3, 1, -2, -1, 3 ]

NON FA LA SOMMA DEGLI ELEMENTI

sum(A>0)

ans = 2 1 1 0 1

es: V = [10, 2, 30, 5, 20]

V(V>7)

ans = 10 30 20

B = A(:, 2)

crea una nuova matrice prendendo da TUTTE LE RIGHE (:) solo LA SECONDA COLONNA (2).

es:

A = [10 20 30

40 50 60

70 80 90] => B = [20

50

80]

vedi pag 59

a.*b moltiplica ogni elementi di a per b.

a./b

a.^b

sort(v) mette in ordine crescente gli elementi di V

[val, pos] = min(v)

valore del minimo

posizione del minimo

anche con max

zeros(R, C) crea matrice RxC con tutti 0

ones(R, C) crea matrice RxC con tutti 1

eye(R, C) crea matrice con 1 nella diagonale e 0 dalle altre parti

rand(R, C) crea matrice con valori casuali tra 0 e 1

rand(1) genera un solo numero

CONCATENARE VETTORI

a = [1, 2, 3]

b = [4, 5, 6]

c = [a, b]

c = [1 2 3 4 5 6]

d = [a; b]

d = [1 2 3]

[4 5 6]

per far nascere una matrice.

v1 = [1, 2, 3]

v1 = [v1, 4]

v1 = [1, 2, 3, 4]

a = [4 5 3 9; 10 4 66 20; 18 -3 2 0]

x = a(2,3)

x = 66

a(1,2) = 7

a = [4 7 3 9; 10 4 66 20; 18 -3 2 0]

SELEZIONARE SOTTOMATRICE

b = [4 7 3 9; 10 4 66 20; 18 -3 2 0]

x = b([1 2], [3 4])

x = [3 9; 66 20]

DIMENSIONI

a = [4 5 6; 10 4 66]

> size(a)

ans = 2 3

> length(a)

ans = 3

diag([1 2 3])

ans =

1 0 0

0 2 0

0 0 3

crea una matrice mettendo gli elementi nella diagonale

reshape(a,3,2)

riordinamento seguendo le colonne senza cambiare gli elementi

ans =

4 4

10 6

5 66

ARROTONDAMENTI

round(5,8)

ans = 6

arrotonda per eccesso

resi pross 14

floor(2,1)

ans = 2

arrotonda per difetto (verso -)

fix arrotonda verso 0

rem(23,5)

resto della divisione 23:5

notazione scientifica: 6,3 .10-3

>> 6,3e+3

GRAFICI

plot(x,y) crea il grafico xy

xlabel("NOME ASSE x")

ylabel("NOME ASSE y")

title("TITOLO GRAFICO")

text(0,1,"NOTAZIONE") scrive NOTAZIONE nel punto (0,1)

grid visualizzazione la griglia

plot(x,y,"specifica linea")

Forma Generale: plot(x,y,"OBB")

Colore:

  • k black
  • r red
  • b blue
  • g green
  • y yellow
  • c cyan
  • w white
  • m magenta

Simbolo:

  • . point
  • o circle
  • x x-mark
  • s square
  • d diamond
  • Etc (+, *, ^, >, <, v, p, h).

Tipo Linea:

  • - solid
  • : dotted
  • -- dashed
  • -. dash-dot

L'ordine non e importante!

es: plot(x,y,"r:d")

grafico con la linea rossa, linea punteggiata e marker a forma di rombi

Si possono aggiungere altre proprieta come:

Forma Generale: plot(x,y,"OBB",value)

Proprieta:

  • linewidth
  • markersize
  • markeredgecolor
  • markerfacecolor

Valore: dipende dalla proprieta

Dimensioni in punti

Colori

Possono esserci coppie multiple!

STUDIO DI POLINOMIO (GRAFICO E RADICI)

es: g(x) = x3 - 7 x2 + 40x -34

x = [ a :0,01: b ]; valori tra cui voglio rappresentare

a = [1, -7, 40, -34];

radici = roots(a)

y = polyval(a,x);

plot(x,y)

MOSTRA GRAFICO...

radici = 3 + 5i;3 - 5i;1

OPPURE DIRETTAMENTE

roots([1, -7, 40, -34])

plot(x, polyval(a))

STUDIO DI FUNZIONE (GRAFICO, ZERI, MINIMO)

vedi sopra per GRAFICO

- definiamo prima la funzione con function

trovare gli zeri: (pag 129)

ZERO = zero("funzione", a)

nome assegnato alla funzione

valore vicino a cui cercare lo zero

trovare il minimo:

MINIMO = min(y)

fminbnd("funzione", a, b) restituisce x minimo nell'intervallo a,b

y = funzione(ZERO) trova il valore di y corrispondente

RIsolvere sistemi

rank(A) = rank([A,b]) = n° incognite

Per matrici quadrate con determinante non nullo

es:

6x + 12y + 4z = 70

7x - 2y + 3z = 5

2x + 8y - 9z = 64

A = [6 12 4; 7 -2 3; 2 8 -9];

b = [70; 5; 64];

soluzioni = A\b

soluzioni = 3

5

-2

N° di incognite

dim = size(A)

dim 3 3

n-incognite = dim(2)

3

Sistemi indeterminati

Ax = b

rank(A) = rank([A,b]) < n° incognite

pinv(A)

Pseudo inversa di A

soluzione = pinv(A) * b

Trova soluzione di norma minima

rref([A,b])

es. A = [-1, 1, 2; 3 -1 1; 2 -2 -4],

b = [2; 6; -4];

rref([A,b])

1 0 1,5 4

0 1 3,5 6

0 0 0 0

corrisponde alla soluzione

x + 1,5z = 4

y + 3,5z = 6

x = 4 - 1,5z

y = 6 - 3,5z

SISTEMI SOVRADETERMINATI

rank(A) < rank([A b])

Risolvo con x = A\b soluzione con minimo dei quadrati.

Script file lineq.m

Solves the set Ax = b, given A and b.

Check the ranks of A and [A b].

if rank(A) == rank([A b])

The ranks are equal.

Size_A = size(A);

Does the rank of A equal the number of unknowns?

if rank(A) == size_A(2)

Yes. Rank of A equals the number of unknowns.

disp('There is a unique solution,... which is:')

x = A\b Solve using left division.

else

Rank of A does not equal the number of unknowns.

disp('There is an infinite number of solutions.')

disp('The augmented matrix of the reduced system is:')

rref([A b]) Compute the augmented matrix.

end

else

The ranks of A and [A b] are not equal.

disp('There are no exact solutions.')

disp('Least square solution is:')

x = A\b Solve using left division.

end

INTEGRAZIONE (METODO TRAPEZI)

∫ab g(x) dx

x = linspace(a, b, m);

y = sin(x);

A = trapz(x,y)

Anteprima
Vedrai una selezione di 4 pagine su 14
Appunti MATLAB per esame Informatica industriale Pag. 1 Appunti MATLAB per esame Informatica industriale Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Appunti MATLAB per esame Informatica industriale Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Appunti MATLAB per esame Informatica industriale Pag. 11
1 su 14
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Lorenzo.2306 di informazioni apprese con la frequenza delle lezioni di Informatica industriale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Ferrara o del prof Gamberoni Giacomo.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community