È possibile utilizzare una funzione in un m-file, che è implementato in una parte successiva dello stesso file: in stile simile ad altri linguaggi di programmazione come C?Le dichiarazioni avanzate sono supportate in MATLAB?
risposta
Naturalmente.
In un tale file m, le funzioni locali sarebbero dichiarate dopo la funzione principale. Ad esempio:
function y = main_func(x)
% # This is the main function
y = helper_func1(x) .* helper_func2(x); % # Just an example
function h1 = helper_func1(x)
% # This is a helper function #1
h1 = x + 2; % # Just an example
function h2 = helper_func2(x)
% # This is a helper function #2
h2 = x * 2; % # Just an example
In questo esempio main_func
può invocare helper_func1
e helper_func2
senza problemi. È possibile test-eseguirlo e vedere di persona:
>> main_func(8)
ans =
160
Non è necessaria alcuna dichiarazione di inoltro.
A proposito, un sacco di m-file forniti con MATLAB sono implementati in questo modo. Ad esempio, corrcoef
. Con type corrcoef
, puoi vederlo.
Nota: le definizioni di funzione locale non sono consentite al prompt o negli script, pertanto è necessario dichiarare una funzione "principale" nel proprio m-file. Come esercizio, copia-incolla il mio esempio in un nuovo m-file, rimuovi la dichiarazione di main_func
(solo la prima riga) e vedi cosa succede.
È possibile utilizzare lo stesso M-file per l'attuazione di molte funzioni che utilizzano una classe statica:
What was the original reason for MATLAB's one function = one file and why is it still so?
- 1. Le costanti sono supportate in ColdFusion?
- 2. Le dipendenze cicliche sono supportate in SBT?
- 3. Le espressioni lambda sono supportate da Razor?
- 4. MSBuildWorkspace.Create() - Le lingue supportate sono zero
- 5. Le enumerazioni sono supportate da JDBC?
- 6. Le istruzioni preparate sono supportate in MySQL incorporato
- 7. Cosa sono le dichiarazioni in avanti in C++?
- 8. Quali funzionalità ES6 sono supportate in JSX?
- 9. Errore IIS: le connessioni remote non sono supportate
- 10. SQLAlchemy con Python 3.2: le estensioni C non sono supportate?
- 11. Perché le connessioni persistenti non sono supportate da URLLib2?
- 12. WCF: le operazioni con parametri out non sono supportate
- 13. Quali sono le entità carattere supportate per i commenti XML?
- 14. Rileva se sono disponibili notifiche avanzate in Chrome
- 15. query avanzate in HBase
- 16. Query avanzate in REST
- 17. Eccezione: "formati URI non sono supportate"
- 18. Efficienza: Interruttore dichiarazioni sopra se le dichiarazioni
- 19. Perché le dichiarazioni Doctype sono divise su due righe?
- 20. Le estensioni native sono di tipo puramente Ruby se non sono supportate sull'installazione gem
- 21. Quali sono le semantiche del 'fine' in Matlab?
- 22. Inutilizzato usando le dichiarazioni
- 23. Controllo Se poi le dichiarazioni in PHP
- 24. Le tabelle senza indice cluster non sono supportate in questa versione di SQL Server
- 25. Code Prime migrazioni in SQL Azure - Le tabelle prive di indice cluster non sono supportate
- 26. Da quando Xcode non richiede più dichiarazioni di metodo avanzate e perché?
- 27. Comprendere le dichiarazioni classpath Eclipse
- 28. Le configurazioni VHDL avanzate sono mai state utilizzate nella vita reale?
- 29. Cosa significano le dichiarazioni VARIADIC in postgreSQL?
- 30. test per le dichiarazioni console.log in IE