Tôi đang làm việc với một lớp nguyên bản đại diện cho hình ảnh 2D dưới dạng mảng 1D. Ví dụ, nếu bạn muốn thay đổi một pixel, bạn cần phải lấy chỉ mục từ x,y
tọa độ.
Vì vậy, giả sử chúng ta có một mảng 1D array1d
như thế này:
array1d = [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y ]
Trong ngữ cảnh của chương trình của chúng tôi, array1d
đại diện cho lưới 2D:
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
Và chúng tôi muốn thực hiện các hoạt động array1d
như:
- Lấy giá trị tại
x,y
tọa độ (trong ví dụ này,1,2
sẽ cung cấpl
) - Nhận bất kỳ lưới con bằng cách sử dụng
x,y,width,height
(1,2,2,2
sẽ cung cấp[l, m, q, r]
) - Đặt giá trị tại bất kỳ
x,y
tọa độ nào (v.v.)
Làm thế nào để chúng ta làm những điều này?
Trong Matlab, và do đó có khả năng là các loại toán học (tràn vào CS), để chuyển đổi một ma trận thành một ma trận khác (có thể là 1x12 thành 2x6 hoặc 2x6 thành 3x4) được gọi là "định hình lại" mathworks.com/help/matlab/ ref / reshape.html
@MichaelT: OP không định hình lại lưới. Không đề cập đến việc định hình lại 5x5 cho bất cứ điều gì khác (dù sao cũng không có ý nghĩa gì). :)
—
Tôi chấp nhận
@IAb trích câu hỏi đó là trong phiên bản 1 mặc dù.