





















Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Dispense che contengono comandi base di MATLAB, spiegando anche il funzionamento del programma; queste dispense fanno riferimento al corso di ing. Meccanica e Aerospaziale di Forlì, ma contengono tutti i comandi base di MATLAB per poter iniziare a programmare.
Tipologia: Dispense
1 / 29
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






















“L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione”.
Esistono due famiglie di linguaggi: ● Procedurali→ (può avere dei limiti rispetto alla programmazione ad oggetti). Si basa su un concetto di sequenza di istruzioni per arrivare a una risposta a cui arrivare. es. organizzare serata, identificare la sequenza di come si svolge la serata. Un approccio diretto, che va a seguire il flusso di ciò che deve essere fatto ● Ad oggetti→ aspetto più filosofico, con una astrazione, maggiore, vi è necessità di ragionamento, di metodo diverso: concentratosi sulla scena e sull’interazione con l’ambiente. In entrambi i casi si tratta di scrivere qualcosa: scrivere parole di linguaggio. Ci sono tanti linguaggi, utilizziamo il MATLAB utile per elaborazione matematica, è un linguaggio “Ad Oggetti” ; il C è un linguaggio Procedurale. In comune hanno parole chiave modi di scrivere che sono gli stessi, uniformando alcune modalità di scrittura.
Il Dato è ciò che andiamo a manipolare con un calcolatore, ciò che andiamo a gestire. Il dato è una descrizione elementare codificata di un’informazione, un’entità, di un fenomeno, di una transazione, di un avvenimento o di altro. In informatica il termine “dato” indica un valore, che può essere elaborato e/o trasformato da un automa o da un elaboratore elettronico. Il dato rappresenta l’oggetto specifico su cui interviene l’esecutore dell’algoritmo. Immaginiamo di creare una rubrica telefonica senza un software, si organizzano i dati in tabella e si possono mettere infiniti dati. Per ogni dato si potrebbero intendere cose molto diverse: per esempio per la parola “indirizzo” si può intendere l’indirizzo di casa, con via numero civico, cap, comune, provincia, nazione, località, frazione, scala, piano, interno, nome sul campanello. Si suddividono poi anche i dati in ulteriori campi: come “Nome e cognome” è opportuno avere due spazi dedicati: uno per gestire il “nome” e uno per il “cognome”. Utilizzando uno solo spazio si aumenta la possibilità di errore. Ognuno di noi attribuisce ad ogni cosa un significato che deriva dai propri studi, esperienza, influenze. Il dato va identificato, ben strutturato e capire il contesto in cui ci si trova. All’interno dei computer vi è una strutturazione, ma ha al suo interno un’astrazione, gestisce tutte le informazioni attraverso una rappresentazione specifica, riconducendo tutto a una sequenza di 0 e 1. Il simbolo madre è il bit , una casella che può assumere il valore 0 o il valore 1, attraverso le varie combinazioni di 0 e 1, che vanno a costituire un pattern di bit, il computer rappresenta i colori, le immagini, i suoni e così via. Quando descriviamo le attività all’interno di un computer dobbiamo usare pattern di bit, che si possono chiamare anche stringhe di bit. Stringhe di questo tipo sono spesso chiamate flussi binari. Per semplificare vengono fatte delle rappresentazioni, solitamente si usa una notazione abbreviata detta esadecimale. La memoria di un computer è organizzata in unità gestibili chiamate celle , con una dimensione di otto bit. Una stringa di otto bit è chiamata byte. I bit dentro una cella di memoria sono ordinati per righe: l’estremità sinistra è detta ordine alto , mentre l’estremità di destra è detta ordine basso. Il bit all’estremità sinistra è chiamato anche bit di ordine alto oppure bit più significativo. Rappresentazione dei valori: La notazione binaria è un modo di rappresentare i valori numerici usando solo le cifre 0 e 1; per fare la sequenza di numeri che vanno da zero a otto il computer utilizza la seguente sequenza: 0000 0001 0010 0011 0100 0101 0110 0111 1000 N.B. Si parte a contare da zero (“Le dita non sono 10, ma 9 perché si parte a contare da 0”) Considerando il concetto di rappresentazione per rappresentare le lettere di una parola come “HELLO” il computer la trasforma nella seguente sequenza: 01101000 01100101 01101100 01101100 01101111 Se si vuole rappresentare il numero 45 si possono ottenere due possibilità a seconda se si considera il 45:
Un byte è formato da 8 bit quindi si possono rappresentare 256 combinazioni tra 0 e 1 che permettono la possibilità di scrivere dei caratteri; per gestire un numero intero si avranno 256 valori da 0 a 255. Per rappresentare i numeri negativi il meno viene gestito come un bit nel byte che rappresenta il numero. Con N bit possiamo rappresentare tutti gli interi appartenenti all’insieme {0, 1, …, 2N-1}. Per esempio con 4 Bit si possono rappresentare fino a 15 numeri. La Tabella ASCII è una tabella che mappa i 256 caratteri che vengono rappresentati all’interno del byte e il computer vede tutto in numeri che sono mappature. Questa tabella che risale gli anni ‘70 non è esaustiva, perché mancano tutti i caratteri cinesi, arabi, giapponesi. Inizialmente non era di 256, ma di 128, quindi tutte le lettere accentate non erano codificate in questa tabella. Aveva 128 perché degli 8 bit 7 venivano gestiti per gestire il carattere e 1 per la conferma.
Un Algoritmo è una sequenza ben definita di azioni che devono essere compiute per arrivare alla soluzione, questa sequenza dovrà essere eseguita da uno strumento automatico. È possibile svolgere un’attività concettualmente di tipo informatico senza l’ausilio del calcolatore. Quando si costruisce un algoritmo deve essere chiaro per noi, bisogna fare in modo che possa essere utilizzabile, interpretabile e gestibile dal calcolatore, che è un esecutore di algoritmi. Il modo in cui si descrivono gli algoritmi non è lo stesso modo in cui il computer va a comprenderli, ma nel mezzo vi è un qualche cosa che permette di tradurre ciò che scriviamo. Un algoritmo deve presentare sei caratteristiche importanti: ➢ Atomicità → I passi costituenti devono essere elementari, cioè non ulteriormente scomponibili; ➢ Non Ambiguità → I passi devono essere interpretabili in modo diretto e univoco dall’esecutore, sia esso umano o artificiale. Di qui, i risultati non devono variare in funzione della macchina o persona che esegue l'algoritmo; ➢ Effettivamente Computabile → Deve esistere un processo computazionale che consente di completare l’operazione con successo; ➢ Finezza → L'algoritmo deve essere composto da un numero finito di passi elementari e richiedere una quantità finita di risorse (es. memoria) per la sua esecuzione; le operazioni sono eseguite un numero finito di volte, altrimenti andrà in loop continuando all’infinito il processo; ➢ Terminazione → L'esecuzione deve avere termine dopo un tempo finito; ➢ Efficienza → Un algoritmo è efficiente se perviene alla soluzione del problema nel modo piu veloce possibile e/o usando la minima quantità di risorse fisiche, compatibilmente con la sua correttezza. Quindi l’algoritmo è una sequenza di passi che definisce il modo con cui viene eseguita una operazione: Passo 1: fa qualcosa Passo 2: fa qualcosa Passo 3: fa qualcosa … Passo N: stop, terminato “Un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito.” La rappresentazione di un algoritmo richiede qualche forma di linguaggio: il linguaggio di descrizione di un algoritmo deve essere adeguato alle caratteristiche del suo esecutore: Esecutore umano→ linguaggio naturale, pseudocodice, linguaggio grafico (es. diagrammi di flusso) Esecutore automatico (calcolatore)→ linguaggio di programmazione es. • “Dati 3 sacchi di patate di forma e dimensione uguale, ma di peso diverso, scrivere l’algoritmo necessario per determinare l’ordine crescente, avendo a disposizione una bilancia a due piatti (bilancino).” → Visualizzare i tre sacchi Prendere i primi due sacchi e li mettiamo sulla bilancia Osservare quale dei due pesa di più Togliere quello che pesa di meno Sostituirlo con il terzo sacco Se questo terzo sacco pesa di più sarà il più pesante, se invece pesa di meno il primo sacco sarà il più pesante. Mettere a confronto gli altri due sacchi per stabilire quale sarà più pesante tra i due Stabilire alla fine delle tre misurazioni l’ordine di peso.
Quindi dividendo il problema in porzioni più piccole è possibile governare la complessità che altrimenti ci sovrasterebbe.
I linguaggi di programmazione sono linguaggi che consentono la descrizione degli algoritmi. Ovvero linguaggi per mezzo dei quali possiamo scrivere gli algoritmi sotto forma di programmi che possono essere eseguiti dal calcolatore. I primi linguaggi più usati furono Fortran e Cobol, il primo adatto a descrivere l’elaborazione di formule matematiche il secondo orientato alle applicazioni gestionali. Per la categoria di linguaggi più rigorosamente basati sullo studio dei principi della programmazione, il cui capostipite è ALGOL, tra i più noti abbiamo: il Pascal, il C e l’Ada. Poi ci sono i linguaggi orientati agli oggetti, tra essi menzioniamo il C++, il C# e Java come derivati dal C, mentre invece Eiffel come derivato dal Pascal. Con l'avvento di Internet, sono stati sviluppati nuovi linguaggi, allo scopo di permettere la programmazione di sistemi su reti di calcolatori, tra cui Java. Infine, vi sono i linguaggi che si rifanno a un modo di pensare più vicino al linguaggio matematico, i più noti sono LISP e PROLOG. Un linguaggio di programmazione è un formalismo per scrivere programmi per calcolatori. Come tutti i linguaggi è definito da una grammatica, cioè una raccolta di regole che la definiscono: ■ Lessico (vocabolario del linguaggio); ■ Sintassi (struttura delle istruzioni); ■ Semantica (significato delle istruzioni) MATLAB è un software creato da MathWorks e comprende un ambiente per il calcolo numerico e l'analisi statistica e un linguaggio di programmazione. Il nome MATLAB è l’abbreviazione di MATrix LABoratory L’elemento base è la matrice, che non richiede dimensionamento. È lo strumento ideale per risolvere problemi con formulazione matriciale o vettoriale.
Se prendiamo una calcolatrice e vogliamo fare un calcolo, per esempio vogliamo fare 5 + 7, digitiamo i vari comandi per fornire il risultato una volta cliccato l'uguale. La calcolatrice per fare questi passaggi ha diverse cose da gestire:
valore, in memoria, con i byte dati per quella variabile, il valore viene convertito in codice binario; ogni volta che vogliamo vedere il valore il computer farà l'operazione inversa. N.B. Non si può usare un nome di variabile se non è stato dichiarato prima! Le varie scatole sono utili, perché attraverso esse possiamo non solo scriverci dentro, ma anche fare delle operazioni con i valori contenuti all’interno. Tutti i linguaggi di programmazione hanno le variabili.
Le variabili si gestiscono in questo modo:
Il nome della variabile (sequenze alfanumeriche e “”; il primo carattere non può essere un numero, o una lettera o “”) è riportato a SINISTRA dell’operatore di assegnamento (=), nella parte DESTRA è presente l'espressione, che corrisponde a ciò che deve essere assegnato (eventualmente come risultato a seguito di un’operazione) alla variabile. es. A = 5 Significa assegnare alla variabile con nome “A” il valore numerico 5; lettera = ‘k’ Significa assegnare alla variabile con nome “lettera” il carattere (simbolo) “k”; numero = voto Significa assegnare alla variabile con nome “numero” il valore che è contenuto nella variabile con nome “voto”. Voto e numero sono due variabili distinte con lo stesso valore all’interno; N.B. Racchiudendo tra “ ” significa che è un valore, mentre senza “ ” sono variabili. L’espressione può essere un calcolo fatto anche con altre variabili totale = voto1 + voto Prima si esegue l’espressione, poi si fa l’assegnazione a sinistra. N.B. Se ho in memoria un valore e lo sostituisco con un altro valore, il valore precedente viene sovrascritto (scompare). Quindi la variabile è lo strumento che ci permette di gestire la memoria, è un’allocazione di memoria associata ad un nome a cui è associato un valore di un certo tipo. Per la variabile è importante assegnare il contenuto: il tipo , specifica sia il modo in cui i dati vengono codificati e il dominio (ovvero il range di valori rappresentabili), sia le operazioni che possono essere eseguite su di esse. Esistono i Tipi di dato primitivi , ovvero tipi di dato inclusi come fondamentali nei linguaggi di programmazione: ➢ INT → Dominio: variabili numeriche costituite da numeri interi; Operazioni: aritmetiche e di confronto; ➢ FLOAT/DOUBLE → Dominio: variabili numeriche con valore reale (numeri con la virgola); Operazioni: aritmetiche e di confronto; ➢ CHAR/STRING → Dominio: dati composti da simboli alfanumerici (Caratteri e stringhe, sequenze di lettere); Operazioni: confronti per stabilire se un simbolo si presenta prima di un altro nell’ordine alfabetico, controllo che una sequenza di caratteri (stringa) appare all’interno di un’altra sequenza di caratteri, …); ➢ BOOLEAN (Booleani, vero o falso) → Dominio: vero o falso; Operazioni: logica booleana.
Nella Command Window digitando direttamente un’operazione e premendo il tasto INVIO, Matlab si comporta come una semplice calcolatrice fornendo il risultato dell’operazione indicata. Il simbolo del prompt della Command Window è >>.
Le funzioni necessitano degli argomenti, i parametri di ingresso, affinché funzioni; nel momento in cui si richiama la funzione e passiamo i dati di ingresso, la funzione al suo interno fa un’elaborazione e ci permette di ottenere il risultato. N.B. Una variabile può contenere al suo interno una funzione. disp() Funzione che stampa a video il contenuto di una variabile , senza mostrare il suo nome. Se viene passato come argomento una stringa, a video sarà stampata la stringa stessa, diversamente il contenuto della variabile passata come argomento. disp(arg) ; es. A = 10; disp(A); → 10 disp(“Hello world!”; → Hello world! N.B. disp() non è l’unica funzione per stampare a video, ma è la più semplice. fprintf() Di base stampa a schermo una stringa e/o il contenuto di variabili (stampa a schermo una stringa “formattata”); dopo la stringa di formato si possono mettere le variabili, delle quali voglio ottenere la stampa a video. fprintf(formato, var1, var2, …) ; es. fprintf(“Hello world!”); → Hello world! A = 10; fprintf(“Valore della variabile: %d”,A); → Valore della variabile: 10 Il primo argomento obbligatorio della funzione fprintf() è la “ stringa di formato ” corrisponde ad una stringa racchiusa tra doppi apici che determina il testo che deve apparire in output, con possibilità di formattazione contenuti. Le parti costanti del testo appaiono a video così come inserite nella stringa. È possibile inserire dei comandi, i comandi di conversione , per poter inserire nel testo il contenuto di una variabile: ➢ %d = intero ➢ %f = reale ➢ %e = reale in formato esponenziale ➢ %s = stringa Se vogliamo stampare piu variabili, si puo fare una stringa di formato con i vari comandi di conversioni, seguiti poi dai corrispettivi valori: fprintf(“Valore1: %d, valore2: %d”, var1, var2) ; es. var1 = 7 var2 = ‘Z’ → valore1: 7, valore2: codice ascii di Z perché il codice di conversione era per numeri interi. Possono essere presenti anche comandi speciali : ■ \n = andata a capo ■ \t = tabulazione ■ \ = backslash ■ %% = simbolo di percentuale fprintf(“Valore1: %d\n, valore2: %d”, var1, var2) ; es. var1 = 7 var2 = ‘Z’ → valore1: 7, valore2: codice ascii di Z N.B. Le due scritture seguenti sono equivalenti alla precedente: fprintf(“Valore1: %d\n”, var1); fprintf(“Valore2: %d”, var2); fprintf(“Valore1: %d”, var1); fprintf(“\n”); fprintf(“Valore2: %d”, var2); Commento % I Commenti all’interno di uno script corrispondono a parti di testo che NON vengono interpretati durante la fase di esecuzione. Sono informazioni utili per il programmatore (e relativi collaboratori) al fine di indicare cosa si sta facendo nel frammento di codice.
In matlab i commenti di riga si fanno inserendo prima del testo il carattere: “%”. Tutto quello che segue (nella stessa linea) il carattere % NON viene interpretato. I “ commenti di blocco ” , indicati con i caratteri %{ %},sono commenti che consentono di gestire blocchi NON interpretati suddivisi su più righe. es. %{ questo testo non è interpretato da Matlab %} input() Funzione per l'acquisizione di dati dall’esterno (dalla tastiera inserito dall'utente). Permette di inserire qualsiasi valore a scelta in quel preciso valore; inoltre la funzione input() stampa anche a video. Nel momento in cui il sistema vede la funzione input() il sistema si ferma, bisogna digitare il valore voluto, poi si procede al calcolo. var = input(stringa) ; Il valore letto (dopo che l’utente ha premuto il tasto “invio”) viene restituito dalla funzione. es. A = input(“inserisci valore:”); A video compare la scritta “inserisci valore: |” Il valore inserito dall’utente (dopo la pressione del tasto “invio”) viene acquisito e salvato nella variabile A N.B. Se, inserendo nel valore una “testo”, il sistema darà “Errore”, per questo motivo, se si vuole far considerare il valore acquisito come una STRINGA bisogna aggiungere ‘s’: var = input(“inserisci testo:”, ’s’ ); min() Calcola il valore più piccolo tra due numeri passati come parametri in ingresso. es. var = min(7,3); → 3 max() Calcola il valore più grande tra due numeri passati come parametri in ingresso. es. var = max(7,3); → 7 mod() La funzione “modulo” calcola il resto della divisione tra due numeri interi. es. var = mod(8,3); → 2 ceil() Restituisce il valore intero successivo rispetto al valore passato. es. var = ceil(7.132); o var = ceil(7.932); → 8 floor() Restituisce il valore intero precedente rispetto al valore passato. es. var = floor(7.132); o var = floor(7.932); → 7 round() Restituisce un intero facendo arrotondamento per eccesso o per difetto. es. var = round(7.132); var = round(7.932); → 7 → 8 sqrt() Restituisce la radice quadrata di un numero passato come parametro. es. var = sqrt(9); → 3 error() Permette di stampare un messaggio di errore. error(“testo del messaggio di errore”) ;
N.B. Il simbolo “=” viene utilizzato in un’istruzione di assegnazione, mentre “==” è usato in una relazione. Le strutture decisionali possono essere annidate: una struttura può essere inclusa all’interno di un’altra struttura che, a sua volta, può contenerne un’altra e così via. Il rientro verso destra di alcune righe del codice mette in evidenza i gruppi delle istruzioni associate a ciascuna clausola end: Si può notare come ogni clausola if è associata ad una clausola end; inoltre ciascuna clausola else fa riferimento all’ultimo if che non è stato chiuso da una clausola end: Per invertire il contenuto di due variabili si utilizza lo SWAP: ci si appoggia ad una variabile d’appoggio.
Un tipo di dato logico è un dato che può avere SOLO due valori:
Il costrutto switch-case consente di selezionare un gruppo di istruzioni da eseguire, in base al valore di una variabile presa in input. Tale costrutto risulta essere utile per le enumerazioni, ma poco appropriato per gli intervalli. La variabile di input viene confrontata con il valore che segue ciascuna clausola case ; se esiste una clausola case seguita da un valore identico a quello assunto dalla variabile presa in input, MATLAB esegue il blocco di istruzioni relativo a tale clausola, poi prosegue l’elaborazione con le istruzioni che si trovano dopo la relativa clausola end. N.B. Ogni valore di case deve essere scritto su una singola riga del programma; Vengono eseguite soltanto le istruzioni corrispondenti al primo valore di case equivalente alla variabile di input; tuttavia se nessun valore di case è equivalente alla variabile di input, vengono eseguite le istruzioni
che seguono la clausola otherwise. La clausola otherwise è facoltativa: se viene omessa e nessun valore di case è equivalente a quello della variabile di input, l’elaborazione continua con le istruzioni che seguono la clausola end. es.
Il nome MATLAB deriva da MATrix LABoratory, infatti ogni cosa in MATLAB è rappresentata mediante matrici, anche le variabili viste finora sono un caso particolare di matrice, aventi dimensione 1 x 1. Una matrice contiene elementi numerati per riga e per colonna, ad esempio mij denota l’elemento alla riga i e colonna j. ●Se hanno una sola dimensione (1D), il loro aspetto intuitivo è quello di una lista o un array (vettore) quindi: · un array riga è una matrice 1 x n; · un array colonna è una matrice n x 1; Infatti in MATLAB il tipo di dato principale è proprio quello di tipo Array. ●Se hanno due dimensioni (2D), il loro aspetto intuitivo è quello di un rettangolo (o quadrato) ; ●Se hanno tre dimensioni (3D), il loro aspetto intuitivo è quello di un parallelepipedo.
Un array (o vettore) è una collezione indicizzata di variabili (elementi) dello stesso tipo. es. Array di voti 24 18 25 22 23 30 20 Un array in MATLAB si crea scrivendo gli elementi , separati da una virgola o uno spazio , che lo compongono all’interno di una coppia di parentesi quadre. es. vet=[1,2,3,4,5] È un array di nome vet composto da 5 elementi es. vettore=[2 -1 -1] È un array di nome vettore composto da 3 elementi Questa tipologia di array viene definita array riga , in cui gli elementi sono disposti orizzontalmente. Esistono dei comandi che permettono di creare degli array particolari:
x = zeros (1, 5) x = 0 0 0 0 0
Per cancellare più elementi da un array bisogna: Per modificare il valore di un elemento in un array bisogna: Notazioni: v(:)identifica tutti gli elementi dell’array v; v(2:5)identifica tutti gli elementi di v il cui indice è compreso tra 2 e 5 , quindi seleziona gli elementi v(2), v(3), v(4), e v(5). È possibile accedere a più di un elemento dell’array alla volta: N.B. L’aggiunta di un elemento oltre il limite di un array non è un errore, ma aggiungerà tra il limite dell'array iniziale e l’elemento oltre il limite un numero finito di 0, tanti quanti i numeri che si interpongono tra le due posizioni: Funzioni dell’array: Tutte le operazioni che sono state applicate su variabili contenenti un solo elemento possono essere applicate agli array: round() Restituisce un array di interi facendo arrotondamento per eccesso o per difetto. ceil() Restituisce un array composto dai valori interi successivi rispetto ai valori precedenti. floor() Restituisce un array di valori intero precedenti rispetto ai valori passati.
max() Trova il numero massimo di un array. es. >> x = 1 : 50;
max (x) 50 min() Trova il numero minimo di un array. es. >> x = 1 : 50; min (x) 1 mean() Trova la media di un array. es. >> x = 1 : 50; mean (x)
size() Trova la dimensione di un array; il primo numero indica le righe, il secondo le colonne. es. >> x = 1 : 50;
size (x)
ans = 1 50 length() Trova la lunghezza di una matrice, restituendo la dimensione massima. es. >> x = 1 : 50;
length (x) ans = 50 find() Restituisce gli indici, per esempio può trovare gli indici di tutti i valori uguali a 2 o di tutti i valori maggiori di 3. es. >> x = [2 8 7 6 4 2 3]; find (x == 2) ans = 1 6 intersect() Trova l’intersezione tra due array. es. >> giorni_liberi_Antonio = 1 : 2 : 31; giorni_liberi_Barbara = [6 7 8 12 14 18 19 20]; giorni_di_incontro= intersect (giorni_liberi_Antonio, giorni_liberi_Barbara) giorni_di_incontro = 7 19 union() Trova l’unione tra due array. es. >> giorni_per_bagno_cane= union (giorni_liberi_Antonio, giorni_liberi_Barbara) giorni_per_bagno_cane = 1 2 5 6 7 8 9 11 12 13 14 15 17 18 19 20 21 22 23 25 27 29 31 char() Data una stringa da il corrispondente array dove in ogni cella c’è una lettera della stringa. Operazioni all'interno dell’array: ● Somma tra un array e uno scalare: es. >> v = [ 1 2 3 ]; z = v + 1
Nel for bisogna inserire il nome della variabile, dato che il for è un iteratore che ripete con un numero ben definito di ripetizioni, bisogna indicare il numero delle iterazioni e ha anche bisogno del nome della variabile, che terrà il conteggio delle ripetizioni; troviamo “ m:s:n ” dove:
break e continue Le clausole break e continue possono essere usate all'interno di un ciclo per terminare o modificare l’esecuzione del ciclo stesso:
Una matrice è un array multidimensionale, sono considerate come due dimensioni; possiamo creare una matrice digitando direttamente i suoi elementi in due modi diversi:
Per creare una matrice trasposta si utilizza ’ detto operatore di trasposizione. es. >> x =[2 4 6; 3 6 9] x = 2 4 6 3 6 9
y = x ‘ y = 2 3 4 6 6 9 max(A) Trova il numero massimo di ogni colonna della matrice A , restituendo un vettore contenente il valore massimo di ogni colonna in ogni cella; per ottenere il numero massimo dell’intera matrice bisogna utilizzare max(max(A)). min(A) Si comporta analogamente alla funzione max(A), dando il numero minimo di ogni colonna della matrice A. mean(A)
Trova la media di ogni colonna della matrice A ; per trovare la media di ogni riga della matrice A bisogna utilizzare la funzione mean(A,2). sum(A) Restituisce la somma di tutti i valori di A : se A è una matrice , restituisce (in un array) la somma degli elementi di ciascuna colonna. Se si utilizza la funzione: sum(A, dim) Somma gli elementi di A lungo la dimensione indicata da dim:
numel(A) Restituisce il numero totale degli elementi della matrice A. find(A) Restituisce un array contenente gli indici degli elementi non nulli della matrice A. Gli indici delle celle della matrice vengono contati verticalmente partendo dall’alto verso il basso. any(A) Verifica se ogni elemento di A è non nullo : restituisce 1 se l’elemento non è nullo, 0 se lo è. Se si utilizza la funzione any(A, dim) permette di specificare se lavorare per riga o colonna:
Il termine numero in virgola mobile (in inglese floating point ) in analisi numerica indica il metodo di rappresentazione approssimata dei numeri reali e di elaborazione dei dati usati dai processori per compiere operazioni matematiche. Si contrappone all'aritmetica intera e a quella in virgola fissa (in inglese fixed- point ). In informatica viene usata solitamente in base 2 e in questo caso può essere considerata l'analogo binario della notazione scientifica in base 10. L'uso di operazioni aritmetiche in virgola mobile è oggi il metodo più diffuso per la gestione di numeri reali e della loro approssimazione razionale nella memoria dei computer.