ฉันกำลังทำงานกับคลาสเนทีฟที่แสดงภาพ 2D เป็นอาร์เรย์ 1D หากคุณต้องการเปลี่ยนหนึ่งพิกเซลตัวอย่างเช่นตอนนี้คุณต้องได้รับดัชนีจากx,y
พิกัด
ดังนั้นสมมติว่าเรามีอาร์เรย์ 1D array1d
ดังนี้:
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 ]
ในบริบทของโปรแกรมของเราarray1d
หมายถึงกริด 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
และเราต้องการดำเนินการarray1d
เช่น:
- รับค่าที่
x,y
พิกัด (ในตัวอย่างนี้1,2
จะให้l
) - รับตารางย่อยโดยใช้
x,y,width,height
(1,2,2,2
จะให้[l, m, q, r]
) - ตั้งค่าที่
x,y
พิกัดใด ๆ(ฯลฯ )
เราจะทำสิ่งเหล่านี้ได้อย่างไร
ใน Matlab และประเภทคณิตศาสตร์ที่น่าจะเป็นไปได้ (ซึ่งกระจายไปสู่ CS) เพื่อแปลงเมทริกซ์หนึ่งไปเป็นอีกเมทริกซ์ (ไม่ว่าจะเป็น 1x12 เป็น 2x6 หรือ 2x6 เป็น 3x4) เป็นที่รู้จักกันในชื่อ "reshaping" mathworks.com/help/matlab/ ref / reshape.html
@MichaelT: OP ไม่ได้เปลี่ยนตาราง ไม่ต้องพูดถึงการปรับขนาด 5x5 ให้เป็นอย่างอื่น (ซึ่งคงไม่สมเหตุสมผล) :)
—
IAbstract
@IAbstract คำถามนั้นอยู่ในการแก้ไขครั้งที่ 1แม้ว่า