Novità in MATLAB

Nuovi strumenti per pre-elaborare e analizzare dati, scrivere script e algoritmi, creare applicazioni e sviluppare software in modalità team-based.

MATLAB non è mai stato così veloce. Scopri tutte le novità più da vicino.

Ambiente

NOVITÀ Controlli di Live Editor: aggiunta di spinner numerici per aumentare e ridurre i valori delle variabili nei live script (R2022b); collegamento di variabili ai valori dei controlli di Live Editor per creare controlli dinamici (R2021a); impostazione di valori predefiniti (R2021b)

NOVITÀ Attività in Live Editor: specificazione del codice che dovrà essere eseguito in caso di cambiamento di un valore di controllo (R2022b); sviluppo delle proprie attività di Live Editor da utilizzare nei live script (R2022a)

NOVITÀ Temi in MATLAB Online: modifica dei colori del desktop MATLAB per adattarli allo schema di colori del proprio sistema operativo (R2022b)

Supporto di Python per l’editor: visualizzazione e modifica di file Python con colorazione della sintassi, rientro automatico e abbinamento dei delimitatori (R2022a)

Colori in Live Editor: modifica dei colori di testo e sfondo di live script e funzioni (R2022a)

Esportazione in Live Editor: esportazione programmatica di live script e funzioni con la funzione export (R2022a)

Editor: refactoring del codice e modifica dei blocchi, perfezionamento dei suggerimenti relativi al codice, completamento automatico del codice e controlli di debug inline (R2021b)

Animazioni di Live Editor: utilizzo dell’interfaccia interattiva per controllare le animazioni (R2021a) ed esportarle in filmati o GIF animate (R2021b)

Linguaggio e programmazione

Usa nuovi tipi di dati e costrutti di linguaggio per scrivere codice più veloce, chiaro e facile da mantenere. 

NOVITÀ Oggetto dictionary: mappatura univoca di chiavi e valori per una ricerca rapida (R2022b)

NOVITÀ App Code Analyzer: identificazione e scoperta di problemi nel codebase (R2022b)

NOVITÀ Convalida degli argomenti di output: convalida degli argomenti di output di funzioni e metodi di classe (R2022b)

Convalida degli argomenti di input delle funzioni: possibilità di dichiarare gli argomenti di input di una funzione per semplificare il controllo degli errori di input (R2020b, R2019b)

Sintassinome=valore: utilizzo della sintassi nome=valore per qualsiasi funzione che utilizzi argomenti nome-valore (R2021a)

Funzionepcode: creazione di file di codice P con maggiore offuscamento (R2022a)

BackgroundPool: esecuzione asincrona di una funzione senza bloccare il prompt dei comandi da MATLAB (R2021b); interrogazione delle funzioni in coda e in esecuzione e stato del pool di background (R2022a)

Modular Indexing: personalizzazione individuale delle operazioni di indicizzazione delle classi utilizzando le nuove superclassi (R2021b)

Visualizzatore di diagrammi di classe: creazione di diagrammi di classe per esplorare i dettagli delle classi e condividere i progetti (R2021a)

Codice che mostra le funzioni e gli argomenti per cercare l’immagine di una palla.

Esempio di convalida degli argomenti di una funzione con il blocco arguments.

Importazione e analisi dei dati

Consulta, organizza, pulisci e analizza i dati provenienti da fonti diverse.

NOVITÀ App Data Cleaner: identificazione e pulizia interattiva di dati disordinati in timetable (R2022a) e tabelle (R2022b); visualizzazione di sparkline e statistiche di sintesi (R2022b)

NOVITÀ Analisi dati: nuove funzioni aggiornate per analizzare dati, tra cui trenddecomp, detrend, mape, rmse e isuniform (R2022b, R2021b)

NOVITÀ Editor Variabili in MATLAB Online: visualizzazione di sparkline e statistiche di sintesi per i dati tabulari, esplorazione di una variabile con le finestre di dialogo Find and Go To, salvataggio interattivo di indici logici di selezione dei dati e sostituzione dei dati tabulari con array vuoti (R2022b)

NOVITÀ Elaborazione parallela: utilizzo di operazioni I/O di file di basso livello in ambienti basati su thread (R2022b)

Funzioni di pre-elaborazione dei dati: aggiunta di variabili trasformate ai dati di input (R2022a)

Attività di Live Editor per la pre-elaborazione dei dati: aggiunta di interfacce point-and-click semplici a un live script per eseguire una serie specifica di operazioni, tra cui la rimozione di valori mancanti e outlier, lo smoothing e la normalizzazione e il raggruppamento e l’unione (R2019b-R021b)

HDF5: supporto di HDF5 versione 1.10, inclusi Single-Writer/Multiple-Reader (SWMR), Virtual Dataset (VDS) e Metadata Cache Fine-Tuning (R2021b)

NetCDF: supporto per la NetCDF versione 4.7.4, inclusa la lettura e la scrittura di dati NC_STRING (R2021b); abilitazione della lettura di intervalli di byte di set di dati remoti (R2022a)

Pre-elaborazione dei dati con l’attività Clean Outlier Data in Live Editor.

Big Data

Espandi la tua analisi ai Big Data senza effettuare grandi cambiamenti.

NOVITÀ File Parquet: utilizzo di filtraggio condizionale (Predicate Pushdown) con rowfilter per limitare il volume dei dati importati; supporto per la lettura e scrittura di gruppi di righe e strutture di dati annidate (R2022b, R2022a)

Prestazioni Datastore: possibilità di specificare l’oggetto FileSet nei datastore per prestazioni migliori (R2021b)

Datastore: lettura di tutti i dati da un datastore mediante l’elaborazione parallela (R2021a); combinazione e trasformazione di datastore (R2019a)

Scrittura nei datastore: possibilità di scrivere grandi raccolte di dati nei datastore sul disco per l’ingegneria dei dati e i workflow basati su file (R2020a)

Array verticali: utilizzo di array verticali con più funzioni, tra cui:

  • groupfilter e matches (2020a)
  • setdiff, xcorr e outerjoin (2019b)
  • groupcounts, intersect e svd (2019a)
Tabella con colorazione del codice che mostra i voli delle compagnie aeree per mese e anno tra il 1987 e il 2008.

Gli array verticali operano su dati che hanno più righe rispetto a quelle consentite in memoria.

Matematica

Le funzioni matematiche forniscono una serie di metodi di calcolo numerico per analizzare dati, sviluppare algoritmi e creare modelli.

NOVITÀ Matematica N-D Array: calcolo di norme (pagenorm), risoluzione di equazioni lineari (pagemldivide, pagemrdivide), calcolo di matrici inverse (pageinv) ed esecuzione della decomposizione ai valori singolari (pagesvd) su pagine di N-D Array (R2022b, R2022a, R2021b)

NOVITÀ Generazione di codice per funzioni matematiche: generazione di codice C (con MATLAB Coder) per molteplici funzioni, tra cui ode15s, shortestpath, e nearest (R2022b), integral e interpft (R2022a), e digraph, graph, hess, ode78, e ode89 (R2021b)

Funzione tensorprod: calcolo dei prodotti tensoriali tra due array (R2022a)

Funzioni ode78 e ode89: utilizzo di metodi Runge-Kutta di ordine superiore per equazioni differenziali ordinarie (R021b)

Algoritmi grafici: calcolo di tutti i percorsi, tutti i cicli e della base dei cicli (R2021a)

Attività Optimize di Live Editor: risoluzione interattiva di problemi di ottimizzazione (R2020b)

Finestra di ottimizzazione che mostra le opzioni per minimizzare una funzione con o senza vincoli.

Utilizzo dell’attività Optimize di Live Editor per definire e risolvere interattivamente problemi di ottimizzazione.

Visualizzazione dei dati

Visualizza i dati con le nuove funzioni di plottaggio e le possibilità di personalizzazione.

NOVITÀ Plottaggio di dati delle tabelle: passaggio delle tabelle direttamente a grafici a stelo, a gradini e geografici (R2022b), plot, plot3, polarplot e altre funzioni di line plotting (R2022a) e grafici a dispersione, a bolle e a sciame (R2021b)

NOVITÀ Generazione di codice in MATLAB Online: generazione di codice quando si modificano le proprietà degli oggetti grafici (R2022b)

NOVITÀ Opzioni di grafici in MATLAB Online: personalizzazione della creazione di figure, del collegamento di dati e dell’etichettatura (R2022b)

Funzione exportgraphics: creazione di file GIF animati (R2022a); cattura e aggiunta di grafici a PDF esistenti (R2021b)

Creazione di attività Plot Live Editor: creazione interattiva di grafici e generazione di codice (R2021a); aggiunta di visualizzazioni ai grafici generati (R2021b)

Nuove funzioni grafiche: visualizzazione delle relazioni parte-intero con bubblecloud (R2021a); creazione di grafici a bolle in coordinate polari, 2D e 3D con bubblechart, bubblechart3 e polarbubblechart (R2020b); visualizzazione delle distribuzioni di dati discreti con swarmchart (R2020b)

Funzioni exportgraphics e copygraphics: salvataggio e copia di elementi grafici con un migliore supporto per i workflow di pubblicazione (R2020a)

Funzione tiledlayout: creazione di layout configurabili di grafici in una figura (R2019b); posizionamento, annidamento e modifica delle dimensioni delle griglie dei layout (R2020a)

Creazione di applicazioni

App Designer consente di creare applicazioni professionali senza dover essere uno sviluppatore software professionista.

NOVITÀ Prestazioni dell’app: tempi di avvio più rapidi e reattività migliorata delle interazioni grafiche (R2022b)

Attività in Live Editor: sviluppo delle proprie attività di Live Editor da utilizzare nei live script (R2022a)

Componenti personalizzati dell’interfaccia utente: creazione interattiva di componenti personalizzati IU con App Designer (R2022a) o creazione programmatica della propria classe (R2020b) per realizzare componenti di interfaccia utente composite in grado di inglobare gli algoritmi, oltre alla grafica e agli oggetti dell’interfaccia

Componenti di interfaccia utente di tabella: riorganizzazione interattiva delle colonne di componenti interfaccia utente di tabella (R2022a); navigazione programmatica a una posizione all’interno di un componente di interfaccia utente di tabella mediante la funzione scroll (R2021a)

Accessibilità: possibilità di modificare l’ordine di focus del tasto tab dei componenti in App Designer e assegnare alla tastiera il focus sui componenti IU in modo programmatico mediante la funzione focus (R2022a)

Stili: aggiunta di icone nelle celle di tabelle e nei nodi di alberi (R2022a); aggiunta di stili a nodi e livelli in un componente di interfaccia utente ad albero (R2021b); creazione e aggiunta di stili per righe, colonne o celle in un componente di interfaccia utente di tabella (R2019b)

Esecuzione del codice in background: utilizzo del linguaggio parallelo (backgroundPool) per creare applicazioni più reattive (R2021b)

App Designer: utilizzo di strumenti e scorciatoie da Live Editor nella Code View (R2021b); ingrandimento e panoramica dell’area di progettazione di Design View (R2021a)

Strumento di confronto: differenziazione e unione delle app di App Designer (R2020b)

Interfacce con linguaggi esterni

MATLAB fornisce un’integrazione flessibile e bidirezionale con altri linguaggi di programmazione. In questo modo i team che utilizzano linguaggi di programmazione diversi possono collaborare e concentrarsi sullo sviluppo di prodotti piuttosto che sulla ricodifica in un altro linguaggio.

NOVITÀ API .NET Engine: possibilità di richiamare MATLAB da applicazioni .NET (R2022b)

NOVITÀ Interfaccia .NET: supporto per .NET 5 e .NET Core (R2022b)

NOVITÀ Python Engine: passaggio degli array NumPy direttamente alle funzioni MATLAB (R2022b)

Python: conversione di tipi di liste e tuple di Python in tipi di MATLAB (R2022a)

Python: utilizzo della sintassi nome=valore per passare argomenti keyword alle funzioni Python (R2022a)

Funzioni pyrun e pyrunfile: esecuzione di comandi e script Python da MATLAB (R2021b)

Python: supporto di array multidimensionali complessi (R2021b)

Interfaccia C++: costruzione di un’interfaccia MATLAB in una libreria C++ da file di intestazione, file sorgente o file di libreria (R2021a, R2020b)

Prestazioni

MATLAB diventa sempre più veloce ad ogni release e non bisogna modificare nemmeno una riga di codice.

NOVITÀ Funzioni prctile, quantile, e iqr: aumento delle prestazioni con piccoli dati di input (R2022b)

NOVITÀ Funzioni mldivide e pagemldivide: aumento delle prestazioni con piccole matrici (R2022b)

NOVITÀ Funzioni conv, conv2, e convn: aumento delle prestazioni con la convoluzione di due vettori, matrici e array (R2022b)

NOVITÀ Prestazioni dell’app: tempi di avvio più rapidi e reattività migliorata delle interazioni grafiche (R2022b); aumento delle prestazioni per la creazione di grafici in uifigure (R2021b)

Classi: aumento delle prestazioni per i metodi statici, accesso alle proprietà delle costanti e funzioni package negli script (R2022a)

Conversione di tipi di dati Python: aumento delle prestazioni per il passaggio tra tipi di dati Python e MATLAB esternamente al processo (R2022a)

API MATLAB Engine per Python: aumento delle prestazioni con array multidimensionali di grandi dimensioni in Python (R2022a)

Indicizzazione table: aumento delle prestazioni per l’assegnazione di elementi tramite pedici con parentesi graffe, notazione a punti o livelli multipli di indicizzazione (R2022a, R2021b)

La funzionefzero: aumento delle prestazioni (R2022a)

Moltiplicazione di matrici sparse: aumento delle prestazioni attraverso la moltiplicazione di matrici sparse di grandi dimensioni (R2021a)

Sistemi lineari sparsi: aumento delle prestazioni per la risoluzione di sistemi lineari sparsi A*X = B con multicolonna B (R2021a)

Grafico a barre che mostra il miglioramento delle prestazioni di MATLAB nel corso degli anni.

Sviluppo software

Gli strumenti di sviluppo software consentono di gestire e testare il codice, integrarlo con altri sistemi software e distribuire le applicazioni nel cloud.

NOVITÀ Strumento di compilazione: creazione ed esecuzione di attività di compilazione software (R2022b)

NOVITÀ Dependency Analyzer: individuazione dei componenti complementari richiesti (R2021a), identificazione dei file che contengono errori di sintassi (R2022b) e salvataggio dei grafici delle dipendenze come immagini (R2022a)

NOVITÀ MATLAB Online: collaborazione utilizzando progetti e Git in MATLAB Online (R2021b), compresa la gestione di ramificazioni e repository Git (R2022b)

App Code Compatibility Analyzer: identificazione e risoluzione dei problemi di compatibilità con la versione attuale di MATLAB (R2022a)

Unit Testing Framework: utilizzo di TestCase; template di classe per creare test in modo più rapido e accurato (R2021b); raccolta di metriche di copertura di istruzioni e funzioni per il codice sorgente (R2022a); esecuzione di test in parallelo su cluster e cloud (R2020b)

Plugin Jenkins per MATLAB: esecuzione di test MATLAB e generazione di report dei test in formati quali JUnit, TAP e report sulla coverage del codice nel formato Cobertura

Nuove architetture di riferimento: distribuzione ed esecuzione di MATLAB su Amazon Web Services (AWS) e Microsoft Azure

Current Folder mostra l’opzione Source Control selezionata da un menu, seguita dall’opzione Update from SVN nel menu successivo.

Utilizzo di strumenti di controllo delle sorgenti di terze parti come SVN direttamente da MATLAB.

Controllo dell’hardware

Controlla i microcontroller più diffusi come Arduino e Raspberry Pi, acquisisci immagini dalle webcam e raccogli dati dai sensori e dati immagine dai droni.

NOVITÀ Arduino: supporto per schede di sviluppo ESP32 MCU (R2022a), compreso il supporto per periferiche servo ed encoder rotativo (R2022b)

NOVITÀ Arduino: connessione e controllo delle schede con l’app Arduino Explorer (R2021b), compresa la gestione delle librerie Arduino e interfacciamento con I2C, SPI e Serial Peripheral (R2022b); connettività BLE per Arduino (R2021b)

App Hardware Manager: connessione all’hardware da MATLAB (R2022a)

Supporto per sensori: lettura di dati da parte del sensore APDS9960 collegato ad Arduino (R2021b)

Raspberry Pi: supporto per shield CAN (R2021b)

Droni: connessione di più droni Ryze Tello per il controllo e la lettura di dati dei sensori (2021b)

Schermata dell’app Arduino Explorer che mostra la configurazione dei pin e un grafico dei pin.

Definizione delle misure dei sensori con l'app Arduino Explorer.