Ho trovato una funzione con un input "segreto", che qualcuno può forse spiegare? Quale potrebbe essere la ragione? Ci sono molti casi di una cosa del genere?Che cos'è una sintassi grandfathered, come nella funzione MATLAB "radon"?
Nella sintassi documentata di radon
funzione, ci sono due modi per chiamare la funzione - quella convenzionale con ingressi di I
e THETA
, (per immagini e angoli di proiezione desiderato), e anche la possibilità di omettere THETA
, e danno solo I
come input.
Ma nei commenti all'interno del file radon.m
, c'è un'altra parte alla fine, che è descritta come "sintassi a grandfather". Ciò consente tre ingressi, incluso anche il numero di proiezioni desiderate. E funziona davvero!
Quindi, perché non è documentato? È stato disponibile in passato, e poi cancellato/modificato (come suggerito da "sintassi a tempo indeterminato")? Quindi, perché funziona ancora?
E, un'altra domanda circa radon.m
:
La parte principale della funzione viene calcolata chiamando un'altra funzione, chiamata radonc
. Che cos'è? Dove risiede? Non riesco a trovarlo o menzionarlo ovunque.
La mia ipotesi è che l'hanno rimosso dalla documentazione per "incoraggiare fortemente" le persone ad usare la nuova sintassi. Funziona ancora per compatibilità con le versioni precedenti, in modo che il codice scritto nelle vecchie versioni di MATLAB funzioni ancora nelle versioni più recenti di MATLAB. Questo processo è molto comune; si chiama [depracation] (http://en.wikipedia.org/wiki/Deprecation). Questo è il punto di vista di MathWorks. –
Per quanto riguarda la seconda domanda (di nuovo, indovinando qui) - ogni volta che il nome di una funzione termina in "c", di solito indica che è stato implementato in C e poi compilato in un file MEX, usualmente per velocizzare l'esecuzione di alcuni porzione della funzione. –
@RodyOldenhuis Grazie.Informazioni sul file MEX: in che modo la mia macchina può eseguire il file, se non ha il file stesso? O semplicemente non l'ho trovato ...?! – Adiel