ฉันกำลังทำงานกับคลาสเนทีฟที่แสดงภาพ 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แม้ว่า