Domanda

sto ottenendo alcuni nuovi studenti presto, che sarà la scrittura di codice MATLAB. Sono nuovo a MATLAB, ma hanno esperienza di codifica in Java e C ++.

ho intenzione di farli passare attraverso il introduttiva sezione del aiuto MATLAB. Inoltre, voglio dare un piccolo tutorial con l'obiettivo di impedire loro di fare alcuni degli errori più comuni che possono compiere quando si passa a MATLAB (ad esempio "MATLAB inizia il conteggio a 1"), e mostrare loro alcune caratteristiche che non possono essere a conoscenza di quando provenienti da altre lingue (ad esempio, "si può sottrarre uno scalare direttamente da una matrice, e per i vettori, c'è bsxfun").

Quali sono le cose più importanti che dovrei dire loro?

È stato utile?

Soluzione

commenti sprezzante sufficiente, di qui una sorta di risposta troppo:

  1. Il desktop di Matlab:. Quello che tutte le finestre sono per, trascinando il codice dal retro storia nella finestra di comando, l'ispettore variabile, etc
  2. Rappresentazione grafica:. Non solo il comando trama, ma come utilizzare gli strumenti di trama GUI, e come creare un M-file da un grafico
  3. M-file per script e funzioni, e le differenze principali tra di loro.
  4. M-Lint, il profiler.
  5. Uso Matlab come veicolo per insegnare i pericoli e insidie ??di aritmetica in virgola mobile.
  6. Richiesta di aiuto: sulla riga di comando, sul web, la documentazione, lo scambio di file, ...
  7. Imposta percorso e la directory di lavoro corrente.
  8. Importazione di dati da file, esportare i dati in file, il caricamento e il salvataggio.

Questo dovrebbe essere sufficiente per tenerli occupati per un'ora o giù di lì.

Per chiarire, io propongo questi argomenti per aiutare a insegnare ai vostri studenti per evitare gli errori più comuni, tra cui Matlab;

  1. uso improduttivo dello strumento, ridigitare i comandi che possono essere facilmente richiamate dalla storia, utilizzando C (o Java) file di stile leggere i comandi al posto di uuimport, digitando lentamente script per disegnare elementi grafici quando Matlab può farlo per voi, chiedendo cosa tutte le piccole linee arancioni nell'editor giusta media margine e le ondulate sottolineature, cercando di cose capire per se stessi quando i servizi di aiuto potrebbero dire loro, tonnellate di altre cose che molti esperienza molto più utenti MATLAB hanno preso le età per imparare.
  2. virgola mobile aritmetica non è reale.
  3. e, probabilmente, un sacco di altre cose troppo.

Altri suggerimenti

Sono d'accordo con le risposte precedenti, ma direi che indicizzazione è il primo e il concetto più importante e complessa nello studio MATLAB. Ho visto molti programmatori C che iniziano con MATLAB solo i cicli di scrittura, un sacco di cicli, qualcosa di ridicolo come

for i=1:10
    a(i)=i;
end

al posto di semplici a=1:10;.

Quindi, io suggerirei loro di leggere su concetti di programmazione matrice:

  • Come creare vettori e matrici semplici
  • Quali variabili possono essere utilizzate per l'indicizzazione
  • Come creare e applicare gli indici
  • operazioni e le funzioni logiche, indici logici e numerici (funzione di ricerca)
  • Indicizzazione lato destro e sinistro di espressione
  • Differenza tra indicizzazione matrici numeriche e matrici di celle
  • Come utilizzare gli indici come uscita dalle diverse funzioni, come il tipo, unico nel suo genere, IsMember, ecc.
  • Non è possibile applicare gli indici per i risultati intermedi

Per quanto riguarda la produttività, vorrei aggiungere che saper utilizzare la modalità cella dell'editor è molto utile.

Per chi proviene dai linguaggi C-familiari, gli operatori elemento-saggio sono nuove. Mi ci sono voluti un paio di mesi per scoprire gli operatori ./ e .*. Prima di allora, ho usato per scrivere per anelli per le operazioni di elementi-saggio. Quindi, forse questo è qualcosa che va sottolineato.

Per quanto riguarda le caratteristiche inaspettate o non-intuitive MATLAB che possono causare loro confusione, ci sono alcune indicazioni buone in questa domanda:

Per quanto riguarda il raffreddamento trucchi di efficienza per risparmiare tempo /, quest'altra questione ha alcuni esempi curato:

E per alcuni argomenti potenzialmente più avanzate, è possibile consultare le risposte a questa domanda:

Ora per la mia $ 0,02. Sulla base dei tipi di domande che ho visto domande più frequenti su SO, direi che si vuole assicurarsi che essi hanno una buona comprensione dei seguenti concetti:

E qui ci sono alcune caratteristiche interessanti che sono già implementati in MATLAB che possono salvare loro un po 'di tempo e fatica:

MATLAB è concettualmente in alcuni modi molto diversi da altre lingue che hai menzionato:

  • cellule sono utilizzate erano Java utilizza upcasting
  • global e persistent variabili sono static in Java
  • maniglie gui essere solo numeri di tipo double
  • chiusure , né Java nè C / C ++ ha tale caratteristica
  • usato raramente private e @type cartelle per la visibilità di scoping
  • Movimentazione matrice trucchi
  • molto facile interoperabilità con Java / COM / .NET utilizzando MATLAB sintassi
  • argomenti della funzione variadic , movimentazione di argomenti di funzione con varargin / varargout
  • memoria < a href = "http://blogs.mathworks.com/loren/2006/05/10/memory-management-for-functions-and-variables/" rel = "nofollow noreferrer"> gestione
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top