Czy istnieje funkcja wbudowana w oktawę, aby pomnożyć każdą kolumnę elementu m X n
elementarnie z wektorem kolumny o rozmiarze m
, który jest bardziej wydajny niż przy użyciu pętli?Element mądre mnożenie macierzy i wektor?
16
A
Odpowiedz
35
można replikować wektor tyle razy, ile potrzeba, aby przekształcić go w m x n
matrycy, jak również, a następnie użyć wbudowanego elementu mądry mnożenia .*
:
>> A = [1 2; 3 4; 5 6];
>> B = [1; 2; 3];
>> A .* repmat(B, 1, columns(A))
ans =
1 2
6 8
15 18
3
nie próbowałem Odpowiedź Anny Lear, ale jak powiedział nobar w tej odpowiedzi, Octave transmituje teraz. Musisz więc zrobić A. * B. Otrzymasz ostrzeżenie, które powie Ci, że automatyczne nadawanie produktów jest stosowane
>> A.*B
warning: product: automatic broadcasting operation applied
ans =
1 2
6 8
15 18
Wierzę, że Octave zrobi to teraz automatycznie (nazywają to "nadawanie"). Domyślnie otrzymasz ostrzeżenie. – nobar