MATLAB CORSO BASE - 04 Analisi e visualizzazione con vettori

in #ita7 years ago (edited)

Lesson 01 (3).png
Ora che siamo a conoscenza del funzionamento base di Matlab e siamo in grado di gestire i dati e la programmazione di primo livello, possiamo affrontare più nel dettaglio la gestione dei vettori e le operazioni su di essi.
I vettori e le matrici compongono il cuore di Matlab ed il software è interamente sviluppato sulla gestione e l'analisi di questi.

<p dir="auto"><strong><em>Anche gli scalari sono matrici 1x1!! <hr /> <h1>Differenti Variabili Numeriche <ul> <li><p dir="auto"><strong>MATRICI: i valori sono memorizzati in <strong>m righe e <strong>n colonne (<em>m-by-n).<br /> <img src="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmYzT9NBNV3U2uqjMz9E3E4mNfPrQny3ttaKJYeH6wJbrU/MAT3-1.png" alt="MAT3-1.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmYzT9NBNV3U2uqjMz9E3E4mNfPrQny3ttaKJYeH6wJbrU/MAT3-1.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmYzT9NBNV3U2uqjMz9E3E4mNfPrQny3ttaKJYeH6wJbrU/MAT3-1.png 2x" /> <em>Per esempio --> v =[ 1 2 3; 4 5 6; 7 8 9; 10 11 12] <li><p dir="auto"><strong>VETTORI RIGA: i valori sono memorizzati in <strong>1 riga e <strong>n colonne (<em>1-by-n). <img src="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmXWNBG2hSoTNPbUzzrYRxA1CdGZ6RfDNEKPjbCy2kj6gT/MAT3-2.png" alt="MAT3-2.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmXWNBG2hSoTNPbUzzrYRxA1CdGZ6RfDNEKPjbCy2kj6gT/MAT3-2.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmXWNBG2hSoTNPbUzzrYRxA1CdGZ6RfDNEKPjbCy2kj6gT/MAT3-2.png 2x" /> <em>Per esempio --> v =[1 2 3] o v =[1:3] <li><p dir="auto"><strong>VETTORI COLONNA: i valori sono memorizzati in <strong>m righe e <strong>1 colonna (<em>m-by-1). <img src="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmVnvR9DbGqjXwDnQpo51m3Wo9hwPPjc4ibNjqmeB3ybsE/MAT3-3.png" alt="MAT3-3.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmVnvR9DbGqjXwDnQpo51m3Wo9hwPPjc4ibNjqmeB3ybsE/MAT3-3.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmVnvR9DbGqjXwDnQpo51m3Wo9hwPPjc4ibNjqmeB3ybsE/MAT3-3.png 2x" /> <em>Per esempio --> v =[1; 2; 3] <li><p dir="auto"><strong>SCALARE: un singolo valore è memorizzato in una cella 1x1 (<em>1-by-1). <img src="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmReF5ZNxR1G23t4DRgPbkzvX76VURx7AcGsjZJ8yiCTXb/MAT3-4.png" alt="MAT3-4.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmReF5ZNxR1G23t4DRgPbkzvX76VURx7AcGsjZJ8yiCTXb/MAT3-4.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/200x200/https://steemitimages.com/DQmReF5ZNxR1G23t4DRgPbkzvX76VURx7AcGsjZJ8yiCTXb/MAT3-4.png 2x" /> <em>Per esempio --> v =1 o v =[1] <p dir="auto">Come possiamo notare dagli esempi nella dichiarazione dei vettori o delle matrici il punto e virgola funge da divisore delle righe e lo spazio delle colonne. <hr /> <div class="pull-right"> <p dir="auto"><br /> <div class="text-justify"> <h1>Espansione scalare <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmckCBLBo3ZgiQTfokrm5vA5YdnAe3oegCuCrtTjTikEgs/MAT3-5.png" alt="MAT3-5.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmckCBLBo3ZgiQTfokrm5vA5YdnAe3oegCuCrtTjTikEgs/MAT3-5.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmckCBLBo3ZgiQTfokrm5vA5YdnAe3oegCuCrtTjTikEgs/MAT3-5.png 2x" /> <div class="table-responsive"><table> <thead> <tr><th>Operatore<th>Simbolo <tbody> <tr><td>Addizione<td>+ <tr><td>Sottrazione<td>- <tr><td>Moltiplicazione<td>* <tr><td>Divisione<td>/ <tr><td>Esponente<td>^ <p dir="auto">In questo caso invece stiamo aggiungendo/togliendo/moltiplicando/dividendo un elemento scalare ad un vettore. Ogni elemento di quest'ultimo sarà modificato, a seconda dell'operatore utilizzato, dallo scalare stesso. <div class="pull-left"> <p dir="auto"><br /> <div class="text-justify"> <h1>Operazioni Aritmetiche <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmU8Yv7c2TdTVZDB9UkANnadNfi223GMEVFKCrQXTXMnpd/MAT3-6.png" alt="MAT3-6.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmU8Yv7c2TdTVZDB9UkANnadNfi223GMEVFKCrQXTXMnpd/MAT3-6.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmU8Yv7c2TdTVZDB9UkANnadNfi223GMEVFKCrQXTXMnpd/MAT3-6.png 2x" /> <div class="table-responsive"><table> <thead> <tr><th>Operatore<th>Simbolo <tbody> <tr><td>Addizione<td>+ <tr><td>Sottrazione<td>- <tr><td>Moltiplicazione Puntuale<td>.* <tr><td>Divisione Puntuale<td>./ <tr><td>Esponente Puntuale<td>.^ <p dir="auto">In questo modo, per esempio, stiamo andando a moltiplicare il primo elemento del primo vettore con il primo elemento del secondo vettore, il secondo con il secondo e così via.<br /> Per questo motivo i due vettori devono assolutamente avere le stesse dimensioni, altrimenti andremo incontro ad un messaggio di errore. <hr /> <h1>Operazioni e Funzioni sui vettori <p dir="auto">Analogamente alle operazioni aritmetiche, alcune funzioni sono <em>"vettorializzate".<br /> Questo permette di utilizzare un singolo comando per modificare allo stesso modo tutti gli elementi di un vettore.<br /> Questo strumento, seppur banale, ha delle potenzialità enormi e facilita di molto l'utilizzo vettoriale/matriciale delle variabili. <div class="pull-right"> <p dir="auto"><br /> <div class="text-justify"> <div class="table-responsive"><table> <thead> <tr><th>Funzione<th>Simbolo <tbody> <tr><td>Seno<td>sin <tr><td>Coseno<td>cos <tr><td>Logaritmo<td>log <tr><td>Arrotondamento<td>round <tr><td>Modulo<td>mod <tr><td>Radice quadrata<td>sqrt <div class="pull-left"> <p dir="auto"><br /> <div class="text-justify"> <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmVXN8VZQhyMjVqDxHAtALEBpan7uMo8mqF5ZXhHUkXBti/MAT3-7.png" alt="MAT3-7.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmVXN8VZQhyMjVqDxHAtALEBpan7uMo8mqF5ZXhHUkXBti/MAT3-7.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmVXN8VZQhyMjVqDxHAtALEBpan7uMo8mqF5ZXhHUkXBti/MAT3-7.png 2x" /> <hr /> <h1>Calcolo Statistico con i vettori <p dir="auto">All'interno di <strong>Matlab è inoltre possibile interrogare i vettori per riuscire a carpire alcuni dati rilevanti senza dover analizzare ogni singolo elemento.<br /> Ad esempio, alcune funzioni come <strong>max e <strong>min, sono in grado di estrarre il valore <strong>massimo o <strong>minimo all'interno di un vettore. <p dir="auto">Dobbiamo porre molta attenzione nel caso in cui anche solo uno dei vettori di dati soggetti al calcolo presentasse un valore <strong>NaN (<em>"Not a Number") dovuto a un qualche errore o ad un dato mancante.<br /> Questo comporterebbe l'assunzione del valore <strong>NaN anche come uscita delle funzioni utilizzate facendoci perdere dati.<br /> Per ovviare a questo problema basterà inserire alla funzione <strong><em>'omitNaN' come secondo input: <pre><code> >> ValoreMedio = mean(VettoreInput, 'omitNaN') <p dir="auto">Alcune funzioni utili e il loro funzionamento: <div class="pull-right"> <p dir="auto"><br /> <div class="text-justify"> <div class="table-responsive"><table> <thead> <tr><th>Funzione<th>Risultato <tbody> <tr><td>max<td>Ritorna il valore massimo <tr><td>min<td>Ritorna il valore minimo <tr><td>mean<td>Ritorna la media degli elementi <tr><td>median<td>Ritorna la mediana degli elementi <div class="pull-left"> <p dir="auto"><br /> <div class="text-justify"> <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmQrDhuvbEtRR3SaWoTAGpaHDHbhrqnLsYmcjtSpeD6vEf/MAT3-8.png" alt="MAT3-8.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmQrDhuvbEtRR3SaWoTAGpaHDHbhrqnLsYmcjtSpeD6vEf/MAT3-8.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmQrDhuvbEtRR3SaWoTAGpaHDHbhrqnLsYmcjtSpeD6vEf/MAT3-8.png 2x" /><br /> <em>Possiamo notare come le funzioni <strong>max e <strong>min possono essere usate, come da immagine, per ottenere l'indice di posizionamento del valore. Risulta molto comodo quando l'indice del valore cercato di <strong>v è correlato al valore presente sullo stesso indice di un altro vettore (per esempio con i vettori <strong>MarketCap e <strong>Date dell'esercitazione precedente). <hr /> <h1>Indicizzazione nei vettori <p dir="auto"><strong><em>Ma una volta scoperto che il valore massimo di capitalizzazione di mercato di Bitcoin ha un indice 8, come possiamo trovare il giorno in cui il prezzo era massimo?<br /> Come si può utilizzare l'indice di posizione scoperto per estrarre il giorno corrispondente dal vettore Date? <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmP7xPX2HjjkALp4WPm3iyrVWnyUTQq6CoW4NUQviNZgSE/MAT3-9.png" alt="MAT3-9.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmP7xPX2HjjkALp4WPm3iyrVWnyUTQq6CoW4NUQviNZgSE/MAT3-9.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmP7xPX2HjjkALp4WPm3iyrVWnyUTQq6CoW4NUQviNZgSE/MAT3-9.png 2x" /> <p dir="auto">Ogni elemento di ogni vettore ha un indice e in <strong>Matlab l'indice del primo elemento è <strong>1.<br /> Possiamo quindi avere accesso ad un dato di un vettore specificandone l'indice tra parentesi dopo il nome della variabile: <pre><code> >> MaxMarketCap = MarketCap (8) <p dir="auto">Questo comando assegna il valore massimo di capitalizzazione in miliardi di dollari, allocato in indice 8, alla variabile <em>MaxMarketCap e visualizza nella <strong>Command Window. <p dir="auto">Invece di utilizzare un numero si potrebbe utilizzare una <strong>variabile come indice.<br /> In questo modo potremmo far dipendere questa variabile da altri parametri all'interno del codice, creare delle dipendenze e correlazioni o selezionare solo <strong>sotto-sequenze inserendo <em>indici vettoriali che andranno ad estrarre solo parte dei valori del vettore intero. <p dir="auto">Si può utilizzare la parola chiave <strong><em>end come indice per puntare all'ultimo elemento di un vettore indipendentemente dalla sua lunghezza. <p dir="auto">Assegnando invece un valore ad un indice non esistente, il software in automatico aggiungerà tanti zeri pari a quelli che mancano per arrivare all'indice di inserimento. Più facile a farsi che a dirsi: <pre><code> >> x = [1 2 3]; x(6)=33 x = 1 2 3 0 0 33 <hr /> <h1>Alcuni operatori 'comodi' <ul> <li><p dir="auto"><strong>TRASPORRE UN VETTORE: grazie all'operatore <strong>' siamo in grado di <a href="https://it.wikipedia.org/wiki/Matrice_trasposta" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">trasporre i vettori. Può essere utilizzato per trasporre anche vettori con <a href="https://it.wikipedia.org/wiki/Numero_complesso" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">numeri complessi trasformandoli (') o meno (.') in complessi coniugati. <pre><code>>> v = [1 2 3]; >> q = v' q = 1 2 3 <li><p dir="auto"><strong>OPERATORE COLONNA: grazie all'operatore <strong>: siamo in grado di decidere quali saranno i <strong>valori iniziali, i valori finali e la spaziatura tra ogni elemento di un vettore. Se viene omesso <em>dx il software prende di default il valore 1 di spaziatura. <pre><code>>> x = v1:dx:v2 <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmYxX5cQWJ8Uo8vRKNNEP3Z3AcSYcawfAGjBESqo69b5bR/MAT3_10.png" alt="MAT3_10.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmYxX5cQWJ8Uo8vRKNNEP3Z3AcSYcawfAGjBESqo69b5bR/MAT3_10.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmYxX5cQWJ8Uo8vRKNNEP3Z3AcSYcawfAGjBESqo69b5bR/MAT3_10.png 2x" /> <ul> <li><p dir="auto"><strong>OPERATORE LINSPACE: grazie a questo operatore siamo in grado di decidere quali saranno i <strong>valori iniziali, i valori finali e il numero di elementi che intercorreranno tra i due. Se vengono omessi gli elementi di ingresso per l'operatore, esso crea di default un vettore di 100 elementi. <pre><code>>> x = linspace(v1,v2,n) <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmb62mNTrVieaEAPZh15G9isiqZ14gRmmvZgz5RR1CRZfT/MAT3_11.png" alt="MAT3_11.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmb62mNTrVieaEAPZh15G9isiqZ14gRmmvZgz5RR1CRZfT/MAT3_11.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmb62mNTrVieaEAPZh15G9isiqZ14gRmmvZgz5RR1CRZfT/MAT3_11.png 2x" /> <p dir="auto">Possiamo notare inoltre come tutti questi siano definiti come vettori riga. Quanto appreso ci permette di trasporre questi vettori nel caso in cui volessimo renderli vettori colonna. <hr /> <h1>Analisi tipologie di grafici vettoriali <div class="pull-right"> <p dir="auto"><br /> <div class="text-justify"> <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmXwFj5WXUZfLPDtY3hi6dqnXTBJL3AinYuMZu6CFLUBzu/MAT3_13.png" alt="MAT3_13.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmXwFj5WXUZfLPDtY3hi6dqnXTBJL3AinYuMZu6CFLUBzu/MAT3_13.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmXwFj5WXUZfLPDtY3hi6dqnXTBJL3AinYuMZu6CFLUBzu/MAT3_13.png 2x" /><br /> <center><em>area(Date,SBD-Steem)<br /> <img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmeCZWTLMH1zp9WicpqhV6nM966CBnkb4oR7Q5ER8BgTZa/MAT3_15.png" alt="MAT3_15.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmeCZWTLMH1zp9WicpqhV6nM966CBnkb4oR7Q5ER8BgTZa/MAT3_15.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmeCZWTLMH1zp9WicpqhV6nM966CBnkb4oR7Q5ER8BgTZa/MAT3_15.png 2x" /> <p dir="auto"><center><em>scatter(SBD,Steem) <div class="pull-left"> <p dir="auto"><br /> <div class="text-justify"> <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmct9cQeiM7PRBEAtGUaFqgqhsKEfgjyVP8AgmLAepQjmA/MAT3_12.png" alt="MAT3_12.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmct9cQeiM7PRBEAtGUaFqgqhsKEfgjyVP8AgmLAepQjmA/MAT3_12.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmct9cQeiM7PRBEAtGUaFqgqhsKEfgjyVP8AgmLAepQjmA/MAT3_12.png 2x" /><br /> <center><em>plot(Date,SBD-Steem,'r') <p dir="auto"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmY1NthWjHszZEzEPFR9WNCAn4rsxKV5YXizXML2T5mC2L/MAT3_14.png" alt="MAT3_14.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmY1NthWjHszZEzEPFR9WNCAn4rsxKV5YXizXML2T5mC2L/MAT3_14.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmY1NthWjHszZEzEPFR9WNCAn4rsxKV5YXizXML2T5mC2L/MAT3_14.png 2x" /><br /> <center> <em>y=[SBD Steem]; >> bar(Date,y) <div class="table-responsive"><table> <thead> <tr><th>Funzione<th>Descrizione <tbody> <tr><td>scatter<td>Grafico a bolle, con dimensioni e colore variabili dell'indicatore <tr><td>bar<td>Grafico a barre (verticali e orizzontali) <tr><td>stem<td>Grafici a sequenze discrete <tr><td>stairs<td>Grafici a scale <tr><td>area<td>Grafici rappresentativi di aree <tr><td>pie<td>Grafici a torta <tr><td>histogram<td>Istogrammi <p dir="auto">Potete trovare altrettanti strumenti grafici seguendo <a href="https://it.mathworks.com/help/" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">l'help in linea.<br /> <strong>Matlab permette di personalizzare ad ogni modo la nostra visualizzazione grafica ma ricordiamoci che i vettori devono avere le stesse dimensioni! <hr /> <h1>Conclusioni <p dir="auto">Abbiamo finalmente concluso la quarta lezione; nella successiva affronteremo il discorso matrici più nel dettaglio.<br /><span> Volevo ringraziare <a href="/@bjtcoin">@bjtcoin per aver dato un suo parere nella scorsa lezione. Spesso il confronto e anche la critica, se costruttiva, possono portare ad enormi miglioramenti! <p dir="auto">Al fine di rendere quanto più didattico possibile il corso, ho deciso di fornirvi una parte della mia memoria cloud di <strong>Drive dove potete trovare delle cartelle con il materiale per poter eseguire autonomamente l'esercitazione proposta.<br /> Basterà scaricare la cartella <em>"Lesson 04" e selezionarla nella <strong>Current Folder.<br /> <a href="https://drive.google.com/drive/folders/1sBNOVKP0hEGVZSz9x2OVQxDXfGeokUXs?usp=sharing" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Qui il link di condivisione della cartella <strong>Drive. In questa lezione saranno disponibili solamente le immagini e il file <em>".mat" dei dati. <hr /> <h2>Bibliografia e fonti <ul> <li>Corso di <strong>Fondamenti di Matlab al Politecnico di Milano <li>Corso online <strong>Matlab Fundamentals fornito da <a href="https://it.mathworks.com/?s_tid=gn_logo" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">MathWorks <li>L'esercitazione è creata interamente dal <strong>Team Daedevils <p dir="auto">Fonti immagini: <ul> <li><a href="https://commons.wikimedia.org/wiki/File:Matlab_Logo.png" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">CCO licence <li>Le restanti immagini sono create dal <strong>Team Daedevils e sono di sua proprietà <hr /> <h2>Indice <ol> <li><a href="https://steemit.com/ita/@daedevils/matlab-basic-course-01-introduction" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Lezione 01 - Introduzione <li><a href="https://steemit.com/ita/@daedevils/matlab-corso-base-02-importazione-e-tracciamento-dati" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Lezione 02 - Importazione e tracciamento dati <li><a href="https://steemit.com/ita/@daedevils/matlab-corso-base-03-incrementare-l-automazione-utilizzando-gli-script" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Lezione 03 - Incrementare l'automazione utilizzando gli script <hr /> <p dir="auto"><center><a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=davinci.witness&approve=1" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmUs8VCYpQY9r1UtWtzRmBZcgfw8YCZhZZ6gyeqHAomMV5/Prova4.jpg" alt="votaXdavinci.witness.jpg" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmUs8VCYpQY9r1UtWtzRmBZcgfw8YCZhZZ6gyeqHAomMV5/Prova4.jpg 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmUs8VCYpQY9r1UtWtzRmBZcgfw8YCZhZZ6gyeqHAomMV5/Prova4.jpg 2x" /><sub>Immagine CC0 Creative Commons, si ringrazia <a href="https://steemit.com/@mrazura" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">@mrazura per il logo <strong>ITASTEM.<br /> <strong>CLICK <a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=davinci.witness&approve=1" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">HERE AND VOTE FOR "DAVINCI.WITNESS" <hr /> <p dir="auto"><center><img src="https://images.hive.blog/768x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521014385/drzn6arnpswr9hf3wbqm.png" alt="2.png" srcset="https://images.hive.blog/768x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521014385/drzn6arnpswr9hf3wbqm.png 1x, https://images.hive.blog/1536x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1521014385/drzn6arnpswr9hf3wbqm.png 2x" />