Я працюю з рідним класом, який представляє 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) відомий як "переформатування" mathworks.com/help/matlab/ ref / reshape.html
@MichaelT: ОП не переробляє мережу. Ніякої згадки про перестановку 5х5 ні на що інше (що все одно не мало б сенсу). :)
—
IAb Abstract
@IAbrief це питання було в редакції 1, хоча.