Tag Archives: esempi matlab

Accesso agli elementi di una matrice in Matlab

MATLAB

Come accedere agli elementi di una matrice in Matlab

Vediamo in questa lezione come accedere agli elementi di una matrice in ambiente Matlab; per prima cosa quindi inseriamo nel workspace di Matlab una matrice di esempio:

>> A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]

A =

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

L’elemento in riga i e colonna j di A è denotato con il simbolo A(i,j). Ad esempio:

>> A(4,2)

ans =

    14

è il numero nella quarta riga e seconda colonna. Per la nostra matrice corrisponde a 14. Così risulta possibile calcolare la somma degli elementi nella quarta colonna di A digitando:

A(1,4) + A(2,4) + A(3,4) + A(4,4)

Questo produce:

>> A(1,4) + A(2,4) + A(3,4) + A(4,4)

ans =

    40

ma non è il modo più elegante di sommare una singola colonna. E’ anche possibile per accedere agli elementi di una matrice utilizzare un singolo pedice, A(k). Questo è il modo solito di accedere agli elementi di vettori riga e vettori colonna.

elementi.matlab

Ma si può anche applicare ad una matrice bidimensionale in questo caso la matrice è considerata come un vettore colonna, formato dalle colonne della matrice originale. Così, per la nostra matrice, A(8) è un altro modo di individuare il valore 14 immagazzinato nella posizione A(4,2), cioè quarta riga seconda colonna.

>> A(8)

ans =

    14

Se si tenta di accedere agli elementi di una matrice al di fuori di essa, si commette un  errore:

>> t = A(4,5)
??? Attempted to access A(4,5); index out of bounds because size(A)=[4,4].

(Messaggio di errore)

D’altra parte, se si immagazzina un nuovo valore in un elemento della matrice che eccede il suo ordine, c’`e un aumento dell’ordine per accomodare il nuovo venuto:

>> A(4,5) = 17

A =

1     2     3     4     0
5     6     7     8     0
9    10    11    12     0
13    14    15    16    17

I vettori vengono trattati in Matlab in modo del tutto analogo. È possibile visualizzare le singole voci di un vettore, dopo averlo definito nel modo seguente:

V=[2 1 3 4];

per visualizzare la prima voce è sufficiente digitare:

>> V (1)
ans =
2

Questo comando stampa il primo elemento nel vettore. Si noti inoltre che una nuova variabile chiamata ans è stata creata.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

La matrice di Durer in Matlab

MATLAB

La matrice di Durer è quello che in gergo si chiama un quadrato magico. Un quadrato magico è uno schieramento di numeri interi distinti in una tabella quadrata tale che la somma dei numeri presenti in ogni riga, in ogni colonna e in entrambe le diagonali dia sempre lo stesso numero; tale intero è denominato la costante di magia o costante magica o somma magica del quadrato.

Inseriamo la matrice di Durer:

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Verifichiamo tutto quello appena detto sui quadrati magici, usando MATLAB. Il primo tentativo è il seguente:

sum(A)

MATLAB risponde con:

ans = 34 34 34 34

Quando non si specifica una variabile di output, MATLAB usa la variabile ans, per immagazzinare i risultati di un calcolo. Si è in questo modo calcolato un vettore fila che contiene certamente le somme delle colonne di A; ogni colonna ha la stessa somma, la somma magica, 34.

Cosa si può dire sulle somme delle righe? MATLAB ha una preferenza per lavorare con le colonne di una matrice, cosìı il modo più facile per ottenere le somme delle righe è quello di trasporre la matrice. Trasponiamo allora la matrice e facciamone la somma.

L’operazione di trasposizione si ottine aggiungendo un apostrofo alla matrice da trasporre, ad esempio:

A’

determina il risultato seguente:

ans = 16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1

e

sum(A ‘) ‘

produce un vettore colonna che contiene le somme delle righe:

ans = 34 34 34 34

durer

La somma degli elementi della digonale principale è ottenuta facilmente con l’aiuto della funzione diag che estrae solo gli elementi dellla diagonale.

diag(A)

produce:

ans = 16 10 7 1

e

sum(diag(A))

produce:

ans = 34

L’altra diagonale, l’antidiagonale così chiamata non è così importante e MATLAB non ha una funzione immediata per calcolarla. Ma una funzione originariamente creata per il suo uso in grafica, fliplr riporta una matrice da sinistra a destra.

sum(diag(fliplr(A)))
ans = 34

Si è così verificato che la matrice di Durer è davvero una magic square e, nel processo, si sono utilizzate operazioni sulle matrici di MATLAB.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Immettere matrici in Matlab

MATLAB

Si possono immettere matrici in MATLAB in molti modi diversi.

  • – introdurre un elenco esplicito di elementi.
  • – caricare matrici da files di dati esterni.
  • – generare matrici utilizzando la funzione built-in.
  • – creare matrici con le proprie funzioni in M-files.

Iniziamo a far vedere come registrare la matrice come un elenco dei suoi elementi. Si seguano a tal proposito solamente alcune convenzioni di base:

  • Separare gli elementi di una riga con spazi vuoti o virgole.
  • Usare un punto e virgola ”;” per indicare la fine di ciascuna fila.
  • Racchiudere l’elenco intero di elementi con parentesi quadrate , [ ].

matrici.matlabPer registrare la matrice di Durer,basterà semplicemente digitare:

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB espone a video solo la matrice digitata,

A = 16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Questo procedimento associa precisamente i numeri a porzioni di memoria. Una volta fornita la matrice, essa è registrata automaticamente nel workspace di MATLAB. Ora si può indicarla semplicemente digitando al prompt di Matlab la lettera A.

>> A

A =

    16     3     2    13
     5    10    11     8
     9     6     7    12
     4    15    14     1

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

MATLAB – Guida all’uso

MATLAB
Una guida all’uso del software matematico MATLAB, pensata per gli utenti inesperti che si avvicinano per la prima volta al suo utilizzo, ma utile anche a chi è già pratico come ausilio allo sviluppo delle sue competenze. Il libro è strutturato in modo tale che il lettore possa apprendere gradualmente le nozioni di base per il corretto utilizzo del software, e in seguito, tramite la soluzione dei più diffusi problemi di calcolo numerico, acquisire padronanza nella gestione della simulazione numerica di modelli matematici. Il testo è valido per qualsiasi versione di MATLAB: gli esempi sono basati sulla versione 7.x ma sono compatibili anche con le versioni precedenti.

libromatlabDettagli del libro

  •     Titolo: Matlab – Guida all’uso
  •     Autore: Giuseppe Ciaburro
  •     Editore: FAG
  •     Collana: Pro DigitalLifeStyle
  •     ISBN: 8882336425
  •     ISBN-13: 9788882336424
  •     Pagine: 251
  •     Formato: brossura

Giuseppe Ciaburro ingegnere chimico, svolge la sua attività di tecnico presso la Seconda Università degli Studi di Napoli. Esperto di acustica, vanta una vasta esperienza nella docenza di corsi professionali di informatica e nel campo dell’e-learning; autore e titolare del sito www.ciaburro.it.

Matlab. Versione 7.x e precedenti. Guida all’uso

Caratteristiche di Matlab

MATLAB

MATLAB rappresenta un linguaggio ad alto rendimento per la computazione tecnica. Esso integra il calcolo, la visualizzazione e la programmazione in un ambiente di facile impiego in cui i problemi e le soluzioni sono espressi in notazione matematica familiare. E’ strutturato secondo il seguente schema:

  •  Matematica e calcolo.
  •  Sviluppo di procedura.
  •  Modellistica, simulazione e prototyping.
  •  Analisi di dati,esplorazione e visualizzazione.
  •  Disegno industriale e scientifico.
  •  Sviluppo di applicazione, compreso la costruzione grafica dell’ interfaccia di utente.

MATLAB è un sistema interattivo in cui l’elemento di base è un array quindi non richiede il  dimensioning. Ciò permette la risoluzione di molti problemi di calcolo tecnici, in particolare quelli con le formulazioni vettorali e matriciali, attraverso algoritmi molto pi`u semplici e snelli rispetto a quelli che sarebbero necessari in un programma in linguaggio scalare non interattivo quali C o il fortran.

Il nome MATLAB corrisponde all’acronimo di laboratorio della matrice. MATLAB era stato originalmente scritto per fornire facile accesso al software delle matrici; si è sviluppato dal LINPACK e dal EISPACK, che rappresentano insieme la punta del progresso software per il calcolo delle matrici. MATLAB si è evoluto durante gli anni con input da molti utenti.In ambienti universitari `e l’attrezzo didattico standard per corsi introduttivi e corsi avanzati, nella matematica, nell’ingegneria e nella scienza.

matlab

La finestra di avvio di Matlab

MATLAB caratterizza una famiglia delle soluzioni application-specific denominate toolboxes. Molto utile per la maggior parte degli utenti di MATLAB, toolboxes, fornisce le basi per applicare la tecnologia specializzata.I toolboxes sono collezioni complete di funzioni MATLAB (M-files)che estendono l’ambiente di MATLAB per risolvere particolari categorie di problemi.Gli ambienti in cui i toolboxes sono disponibili sono:

  •  elaborazione dei segnali,
  •  sistemi di controllo,
  •  reti neurali,
  •  logica incoerente,
  •  wavelets,
  •  simulazione e molti altri.

Come definire una funzione in Matlab

MATLAB

In questa lezione impareremo come definire una funzione in Matlab. Le Funzioni ci danno la possibilità di estendere le potenzialità di MATLAB. È possibile creare nuove funzioni specifiche per il problema che poi assumono lo stesso status delle altre funzioni di MATLAB. Le variabili in un file di funzione sono locali per impostazione predefinita. Tuttavia, dalla versione 4.0 di Matlab ci è permesso di utilizzare una variabile da dichiarare globale.

Le Funzioni sono M-file che possono accettare argomenti d’entrata e forniscono argomenti di uscita. Il nome dell’M-file e della funzione deve essere lo stesso. Le Funzioni operano su variabili definite nel workspace proprio, separato dal workspace a cui si accede all’ingresso di MATLAB, cio`e le variabili usate all’interno della funzione sono locali.

Vediamo come scrivere una una funzione con parametri in ingresso e parametri in uscita. Si voglia costruire una funzione che, dati i lati ”a” e ”b” di un rettangolo fornisca l’area ”A”, il perimetro ”p” e la diagonale ”d”. Indichiamo con (a; b) la lista d’ingresso (parentesi tonde) e con [A; p; d] la lista d’uscita (parentesi quadre) (si noti la virgola fra i parametri).

function [ A , p , d ] =rettang ( a , b )
A = a * b;
p = 2 * ( a + b );
d =sqrt ( a^2 + b^2 );

Si noti che non c’e’ confusione tra la lettera A e la a perche’ MATLAB distingue le lettere maiuscole dalle minuscole. Questa function, salvata con il nome rettang.m puo’ essere richiamata da un altro modulo o direttamente dalla finestra comandi ad esempio con il comando:

[area; perim; diag] =rettang(2; 3)

Quindi la sintassi e’ la seguente:

function [lista d’uscita] = nome (lista d’ingresso)

L’uso delle funzioni ci permette di racchiudere un algoritmo complesso in un singolo script allo scopo di riutilizzare lo stesso magari in un’altra applicazione. Nella programmazione procedurale si fa largo uso delle funzioni, e spesso è possibile utilizzare delle funzioni già disponibili, magari recuperate su internet in modo da semplificarci il lavoro.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: