mam 3d (lub ogólnie n-wymiarowej) matrycy A
o wymiarach3d matrycy przez kolumnę mnożenie wektorowe
size(A) = [d1 d2 d3 ... dn].
Teraz chce wykonać mnożenie wektorów zawierających wektor kolumny v
przez jeden z wymiarów (jak to zrobić w 2 wymiarach, gdzie mogę dostać wektor zwrócony - na przykład dla d1 = 2
, d3 = 4
i size(v) = d2
), tak że
(A*d)_i = sum(a_ij*v_j).
dlatego chcę, aby zmniejszyć o jeden wymiar.
Czy istnieje funkcja Matlab (inne niż zapętlenie), która zwraca na d3
wymiarowa kolumny wektor v
(A*v)_ij = sum(A_ijk*v_k).
Mam nadzieję, że to było jasne.
Dzięki!
Alright - dzięki. Miałem nadzieję na coś gładszego, ale to chyba wystarczy. – user1763302
Ta metoda działa tylko wtedy, gdy wymiar, który ma zostać pomnożony, jest ostatnim wymiarem macierzy N-d. Byłoby miło, gdyby kod działał dla dowolnego wymiaru 1 ... N macierzy N-D. Wydaje się być w stanie z 'dimshift' na początku i na końcu. – cjh
Wydaje się, że jest to wykonalne z 'permutacją' rzeczywiście .... Zajęło by to kilka minut, aby o tym pomyśleć. Możesz edytować moją odpowiedź lub dodać własną. Wkrótce mam termin. – Oli