Khi thao tác ma trận, việc thay đổi hình dạng của chúng thường thuận tiện hơn. Ví dụ, để biến một N x M có kích thước ma trận vào một vector có độ dài NX M. Trong MATLAB một Reshape chức năng tồn tại:Cách định hình lại ma trận trong Mathematica
reshape (X, M, N) trả về M-by-N ma trận có các phần tử được lấy theo cột từ X. Một kết quả lỗi nếu X không có các phần tử M * N.
Trong trường hợp chuyển đổi giữa một ma trận và vector Tôi có thể sử dụng chức năng Mathematica Flatten mà mất lợi thế của đại diện danh sách lồng nhau Mathematica cho ma trận. Như một ví dụ nhanh, giả sử tôi có một ma trận X:
Với Flatten [X] Tôi có thể nhận được các vector {1,2,3, ..., 16}. Nhưng điều gì sẽ xa hữu ích hơn là một cái gì đó tương tự như áp dụng Matlab của Reshape (X, 2,8) mà sẽ cho kết quả trong Matrix sau:
này sẽ cho phép tạo ra các ma trận tùy ý miễn là kích thước bằng N * M. Theo như tôi có thể nói, không có bất cứ điều gì được xây dựng trong đó làm cho tôi tự hỏi nếu ai đó đã không mã hóa một chức năng Reshape của riêng mình.
Lưu ý: Giải pháp này transposes hai kích thước cuối cùng, vì vậy nó không khá làm việc. – Guillochon