Tôi có ma trận 3D dữ liệu trong MATLAB, nhưng tôi muốn trích xuất một lát dữ liệu tùy ý từ ma trận đó và lưu nó dưới dạng ma trận 2D. truy cập. Tương tự như cách hàm slice() hiển thị dữ liệu được cắt lát ở bất kỳ góc nào, ngoại trừ tôi cũng muốn có thể xem và sửa đổi dữ liệu như thể nó là một mảng.Trích xuất mặt phẳng xoay tùy ý của dữ liệu từ mảng 3D thành mảng 2D
Tôi có tọa độ của trục-point của máy bay cũng như các góc quay (trong x, y và z trục), tôi cũng đã tính toán phương trình của mặt phẳng theo hình thức:
Ax + By + Cz = D
và có thể trích xuất ma trận 3D chỉ chứa dữ liệu rơi trên mặt phẳng đó, nhưng tôi không biết cách chuyển đổi dữ liệu đó thành một mảng 2D đơn giản.
Một cách khác để làm điều đó là bằng cách nào đó xoay ma trận nguồn theo hướng ngược lại của góc của mặt phẳng, để sắp xếp mặt phẳng dữ liệu với trục XY và chỉ cần trích phần đó của ma trận , nhưng tôi không biết nếu xoay một ma trận như thế là có thể.
Tôi hy vọng điều này chưa được giải đáp ở nơi khác, tôi đã googling nó cả ngày, nhưng không có vấn đề nào dường như khớp chính xác với tôi.
Cảm ơn
Bạn chỉ cần dữ liệu rơi chính xác *** trên mặt phẳng (nói chung sẽ là số lượng dữ liệu rất nhỏ) hoặc bạn có muốn nội suy dữ liệu không? – yohai
Tôi muốn trả lại ô gần nhất thay vì nội suy, mặc dù nội suy sẽ được xem xét sau –
Để rõ ràng bạn có ma trận với 3 phân 'A [i, j, k] = a_ijk' và bạn muốn tạo mảng 2 phân chia 'B [u, v] = b_uv' trong đó' u', 'v' là tọa độ trên mặt phẳng/lát của' i', 'j',' k' thế giới? (và tất cả các phân là số nguyên) Ngoài ra, có một số quy ước mà 'ijk' tương ứng với' u = 1' và 'v = 1' không? – ja72