Benim sorum: Matlab sorularına SO hakkında çok iyi cevapların sık sık işlevi kullandığını fark ettim bsxfun. Neden?
Motivasyon: için Matlab belgelerinde bsxfunaşağıdaki örnek verilmiştir:
A = magic(5);
A = bsxfun(@minus, A, mean(A))
Tabii ki aynı işlemi kullanarak yapabiliriz:
A = A - (ones(size(A, 1), 1) * mean(A));
Aslında basit bir hız testi, ikinci yöntemin yaklaşık% 20 daha hızlı olduğunu gösterir. Peki neden ilk yöntemi kullanmalıyım? Sanırım kullanım bsxfun"manuel" yaklaşım daha hızlı olacak bazı durumlar vardır . Böyle bir durumun bir örneğini ve neden daha hızlı olduğuna dair bir açıklama görmekle gerçekten ilgilenirim.
Ayrıca, yine bu sorunun Matlab belgelerinden son bir öğe bsxfun: "C = bsxfun (eğlence, A, B) işlev tutamacı eğlencesi tarafından belirtilen öğe tekli ikili işlemi, singleton ile A ve B dizilerine uygular genişletme etkin. "Singleton genişletmesi etkin" ifadesi ne anlama geliyor?
timeitsize / angainor / Dan'ın sağladığı bağlantıdaki işlevi okuyarak öğrendim .



tic...tocsatırların etrafına koyarsanız , kodun hızı işlevleri belleğe okumak zorunda kalmanıza bağlı olacaktır.