Mam macierz 3D danych w Matlab, ale chcę wyodrębnić dowolnie obrócony kawałek danych z tej macierzy i zapisać go jako macierz 2D, którą mogę dostęp. Podobny do tego, jak funkcja slice() wyświetla dane pokrojone pod dowolnym kątem, oprócz tego chciałbym również móc przeglądać i modyfikować dane tak, jakby były tablicą.Wyodrębnij dowolnie obróconą płaszczyznę danych z macierzy 3D jako macierz 2D
mam współrzędne obrotu punktu na powierzchni, jak również kąty obrotu (X, Y i osi Z), ja również obliczyć z równania samolotu w postaci:
Ax + By + Cz = D
i można wyodrębnić macierz 3D zawierającą tylko te dane, które mieszczą się na tej płaszczyźnie, ale nie wiem, jak to przekształcić w prostą tablicę 2D.
Innym sposobem wykonania tej czynności jest obrócenie macierzy źródłowej w kierunku przeciwnym do kąta płaszczyzny, tak aby wyrównać płaszczyznę danych z osią XY i po prostu wyodrębnić tę część macierzy , ale nie wiem, czy obracanie takiej matrycy jest możliwe.
Mam nadzieję, że na to pytanie nie odpowiedziano w żadnym innym miejscu. Przez cały czas googlowałem, ale żaden z problemów nie pasuje do mojego.
Dzięki
Czy potrzebujesz tylko danych, które *** są dokładnie *** na płaszczyźnie (które na ogół będą bardzo małą ilością punktów danych) lub czy chcesz chcieć interpolować dane? – yohai
Chcę zwrócić najbliższe komórki zamiast interpolacji, chociaż interpolacja zostanie rozpatrzona później. –
Aby było jasne, macie macierz z 3 indecjami 'A [i, j, k] = a_ijk' i chcecie utworzyć tablicę 2 indeces 'B [u, v] = b_uv' gdzie' u', 'v' są współrzędne na płaszczyźnie/wycinku świata' i', 'j',' k'? (i wszystkie indeces są liczbami całkowitymi). Czy istnieje również konwencja, w której 'ijk' odpowiada' u = 1' i 'v = 1'? – ja72