Tôi hiện đang cố gắng chuyển đổi một số mã Python thành C++. Một vấn đề 'nhỏ' đang thay đổi kích thước của một ma trận. Có thể định hình lại ma trận trong C++ tương tự như hàm Python reshape
không?Cách định hình lại ma trận?
Ví dụ, trong Python tôi có thể dễ dàng tạo một mảng với numpy
và dễ dàng định hình lại kích thước.
a = np.array([[1,2,3],[4,5,6]])
>>> a.reshape(3,2)
array([[1, 2],
[3, 4],
[5, 6]])
Tôi có thể làm điều này bằng C++ như thế nào? Có lẽ đây là một câu hỏi đơn giản nhưng tôi hoàn toàn không thể làm được điều này. Tôi đã thấy điều này trong thư viện OpenCV với các lớp Mat
here tuy nhiên nó được chứng minh là cực kỳ khó khăn để làm việc đúng với MinGW, chưa kể đến một bổ sung rất lớn cho một chức năng duy nhất. Nó sẽ là lý tưởng nếu điều này là có thể với chức năng 'cơ sở'.
Đây thực sự là một câu hỏi rất phức tạp. Trong NumPy nó dễ dàng bởi vì mảng NumPy thực sự theo dõi các bước tiến và hình dạng của chúng; [bài viết này] (http://arxiv.org/pdf/1102.1523) mô tả cấu trúc và có thể cung cấp nguồn cảm hứng ngay cả đối với các chương trình C++. –