Sei sulla pagina 1di 2

5 Flusso di controllo

terminatore di istruzione ;
C Reference Card (ANSI) - versione semplificata delimitatore blocco { ... }
istruzione if if (espr) istruzione1 else istruzione2
corso Informatica B Politecnico di Milano istruzione while while (espr) istruzione
istruzione for for (istr1; espr; istr3) istr2
istruzione do do istruzione while (espr);
istruzione switch switch (espr) {case val1: istr1; break; ...
default istr}
1 Struttura del programma
6 Libreria ANSI C
struttura del programma principale
<assert.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h>
int main(void) {
<math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdio.h>
declarations
<stdlib.h> <string.h> <time.h>
statements
}
7 Input/Output <stdio.h>
Dichiarazione di variabile: type name;
stampa formattata printf(‘‘formato’’, arg1, arg2, ...);
2 Comandi per il preprocessore acquisizione formattata scanf(‘‘formato’’, arg1, arg2, ...);

inclusione di un file di libreria #include <filename> 8 Operazioni tra stringhe <string.h>


definizione di costante #define name value
lunghezza di s strlen(s)
3 Dichiarazioni copia di s2 in s1 strcpy(s1, s2)
concatenazione di s2 dopo s1 strcat(s1, s2)
carattere (1 byte) char confronto tra s1 e s2 strcmp(s1, s2) - restituisce 0 se uguali, < 0 se s1 precede s2,
intero int > 0 altrimenti
short (16 bit integer) short
long (32 bit integer) long
9 Mathematical Functions <math.h>
numero senza segno unsigned
constante type const name; funzioni trigonometriche sin(x), cos(x), tan(x)
numero reale float, double funzioni trigonometriche inverse asin(x), acos(x), atan(x)
type enumerativo typedef enum name1, name2, ... typeName; arctan(y/x) atan2(y,x)
struct typedef struct ... typeName; funzioni trigonometriche iperboliche sinh(x), cosh(x), tanh(x)
ridefinizione di tipo typedef oldTypeName newTypeName; esponenziali & logaritmi exp(x), log(x), log10(x)
tipo array typedef elementType arrayType[dim]; elevamento a potenza pow(x,y), sqrt(x)
tipo matrice typedef elementType matrixType[dim1][dim2];

4 Operatori
accesso al campo di una struct structName.field
accesso all’i-esimo elemento di un array arrayName[i]
operazioni aritmetiche per interi +, -, *, /, %, ++, --
operazioni aritmetiche per reali +, -, *, /
operatori di confronto ==, !=, >, <, >=, <=
operatore di assegnamento =
operatori logici &&, ||, !
Operatori
Aiuto! x.*y moltiplicazione elemento per elemento
Programmazione
help x mostra la documentazione su x if/elseif/else
x./y divisione elemento per elemento
doc apre la documentazione di matlab
x+y somma elemento per elemento Esegue bodyTrue1 se cond1!=0, altrimenti se cond2!=0 esegue bodyTrue2, al-
docsearch x cerca x nella documentazione
x-y sottrazione elemento per elemento trimenti esegue bodyFalse12. elseif così come else è opzionale.
trasposta
Comandi generali di matlab A’
if(cond1)
size(x) [righe, colonne] di x 1

Informative 2 bodyTrue1
Ricerca
whos mostra tutte le variabili nel workspace 3 elseif cond2
x(x>5) gli elementi di x maggiori di 5
ans mostra l’ultimo risultato bodyTrue2
x(x>5)=0 cambia gli elementi di x maggiori di 5 in 0 4

Pulizia find(A>5) trova gli indici degli elementi di A maggiori di 5 5 else


clc pulisci il contenuto della finestra comandi 6 bodyFalse12
Layout
clear cancella tutte le variabili dal workspace end
[A,B] concatena orizzontalmente A e B 7
clear x cancella solo x dal workspace
[A;B] concatena verticalmente A e B
close all chiude le figure for
close(H) chiude la figura H Operatori logici Esegue body n volte; ad ogni iterazione la variabile i viene incrementata di 1 fino
Caricamento e salvataggio Semplici valori logici ad arrivare ad n:
save filename salva le variabili nel file filename && 0 && 1 == 0 etc..
save filename x,y salva solo le variabili x,y nel file filename 1 for i=1:n
|| 0 || 1 == 1 etc..
2 body
save -append filename x salva x in un file già esistente ~ NOT
load filename carica le variabili da file 3 end
Vettori di valori logici
Sistema & AND elemento per elemnto while
addpath(string) aggiunge una directory dove cercare gli script | OR elemento per elemento
pwd directory corrente Esegue body ripetutamente finche’ l’espressione cond non vale 0:
~ NOT elemento per elemento
mkdir crea una directory 1 while(cond)
tempdir crea una directory temporanea Operatori relazionali 2 body
exit esci da matlab
== Uguaglianza 3 end
dir stampa contenuto directory corrente
~= Vero se sono differenti
>= Maggiore uguale switch/case
Funzioni e variabili già presenti in matlab
<= Maggiore uguale Esegue bodyA se exp è uguale ad a; oppure esegue bodyB se exp è uguale ad b.
Generiche Se nessun caso è verificato esegue bodyDefault.
sum(x) somma elementi del vettore x Stampa
prod(x) prodotto degli elementi del vettore x format short Usa 4 cifre dopo la virgola
1 switch exp
diff(x) differenze fra elementi adiacenti di x format long Usa 16 cifre dopo la virgola 2 case a
abs(x) valore assoluto; abs(-3) = 3 disp(x) Mostra la stringa x 3 bodyA
Arrotondamento num2str(x) Converte il numero x in una stringa 4 case b
floor(x) tronca x (floor(0.7) = 0) mat2str(x) Converte una matrice in una stringa 5 bodyB
ceil(x) tronca per eccesso x (ceil(0.1) = 1) int2str(x) Converte un intero in una stringa 6 ...
round(x) arrotonda x sprintf(x) Converte un oggetto generico in stringa 7 otherwise
round(x,n) arrotonda x alla n-esima cifra decimale 8 bodyDefault
Variabili Grafici 9 end
pi 3.1415… Creazione/Manipolazione Grafici
inf ∞ fig1 = plot(x,y) crea plot 2d e assegna handle a fig1 Data import/export
eps floating point accuracy fig1 = gcf() assegna handle figura corrente a fig1
xlsread/xlswrite Spreadsheets (.xls,.xlsm)
1e6 106 fig1 = figure crea una nuova figura vuota
readtable/writetable Spreadsheets (.xls,.xlsm)
hold on abilita sovrascrittura immagini
dlmread/dlmwrite text files (txt,csv)
Vettori e matrici hold off chiude la figura corrente
load/save -ascii text files (txt,csv)
Creazione Modifica stili grafici load/save matlab files (.m)
j:k vettore riga [j, j + 1, …, k] set(fig1, ’LineWidth’, 2) cambia dimensione linea imread/imwrite Image files
j:i:k vettore riga [j, j + i, …] set(fig1, ’LineStyle’, ’-’) cambia stile linea
Copyright ©2015—2017 Vittorio Zaccaria
ones(a,b) matrice a×b di 1 -, --, :, -. possibili stili di linea
Revision: 0.7 - December 18, 2017
zeros(a,b) matrice a×b di 0 set(fig1, ’Marker’, ’.’) cambia il marker per i punti
x[1, 2, 3]= vettore riga 1x3 ’, +, *, x, o, square possibili markers
x[1; 2; 3]= vettore colonna 3x1 set(fig1, ’color’, ’red’) cambia colore della linea
x[1, 2; 3, 4]= matrice 2x2 red, blue, green, yellow, black possibili colori
Accesso e modifica set(fig1, ’MarkerSize’, 10) cambia la dimensione dei markers
x(2)=4 scrivi 4 nel secondo elemento di x set(fig1, ’FontSize’, 14) cambia la dimensione del font
x(:) tutti gli elementi di x Assi, griglie e leggende
x(j: end ) gli elementi di x da j fino alla fine xlabel(’\mu line’,’FontSize’,14) assegna un nome all’asse X
x(2:5) dal secondo al quinto elemento di x ylim([a b]) assegna dei limiti all’asse y
x([3,2,5]) sottovettore di x (3o , poi 2o poi 5o elemento di x) title(’name’,’fontsize’,22) assegna un titolo al grafico
x(j,:) tutti gli elementi della riga j grid on/off; aggiunge/toglie una griglia
x(:,j) tutti gli elementi della colonna j legend(’y1’,’y2’) aggiunge una legenda per i plot y1 e y2

Potrebbero piacerti anche