W Matlab, kiedy optymalne jest używanie bsxfun?

Moje pytanie: Zauważyłem, że wiele dobrych odpowiedzi na pytania Matlaba dotyczące SO często używa tej funkcjibsxfun. Czemu?

Motywacja: W dokumentacji Matlab dlabsxfun, podano następujący przykład:

A = magic(5);
A = bsxfun(@minus, A, mean(A))

Oczywiście możemy wykonać tę samą operację przy użyciu:

A = A - (ones(size(A, 1), 1) * mean(A));

W rzeczywistości prosty test prędkości pokazuje, że druga metoda jest o 20% szybsza. Po co więc stosować pierwszą metodę? Zgaduję, że istnieją pewne okoliczności, w których używaszbsxfun będzie znacznie szybszy niż podejście „ręczne”. Byłbym naprawdę zainteresowany przykładem takiej sytuacji i wyjaśnieniem, dlaczego jest szybszy.

Również jeden ostatni element tego pytania, ponownie z dokumentacji Matlab dlabsxfun: "C = bsxfun (fun, A, B) stosuje operację binarną element po elemencie określoną przez zabawę z uchwytem funkcji do tablic A i B, z włączonym rozszerzeniem singleton.". Co oznacza wyrażenie „z włączonym rozszerzeniem singleton”?

questionAnswers(5)

yourAnswerToTheQuestion