La mia domanda: ho notato che molte buone risposte alle domande di Matlab su SO utilizzano spesso la funzione bsxfun. Perché?
Motivazione: Nella documentazione di Matlab per bsxfun, viene fornito il seguente esempio:
A = magic(5);
A = bsxfun(@minus, A, mean(A))
Ovviamente potremmo fare la stessa operazione usando:
A = A - (ones(size(A, 1), 1) * mean(A));
E in effetti un semplice test di velocità dimostra che il secondo metodo è circa il 20% più veloce. Quindi perché usare il primo metodo? Immagino ci siano alcune circostanze in cui l'utilizzo bsxfunsarà molto più veloce dell'approccio "manuale". Sarei davvero interessato a vedere un esempio di tale situazione e una spiegazione sul perché sia più veloce.
Inoltre, un ultimo elemento di questa domanda, sempre dalla documentazione di Matlab per bsxfun: "C = bsxfun (divertimento, A, B) applica l'operazione binaria elemento per elemento specificata dalla funzione handle divertente agli array A e B, con singleton espansione abilitata. ". Cosa significa la frase "con espansione singleton abilitata"?
timeitfunzione nel link che tu / angainor / Dan fornisci.



tic...tocle righe, la velocità del codice dipenderà dalla necessità di leggere le funzioni in memoria.