Во-первых, это может помочь узнать немного о вашей намеченной цели.Однако, если мы предположим, что ваш массив называется Img
, вы всегда можете использовать функцию reshape()
, чтобы преобразовать изображение в новый массив с формой numel(Img)
на 1
:
new_Img = reshape(Img, numel(Img), 1);
.в документации это хранит записи по столбцам, то есть сначала получает все элементы столбца 1, затем столбца 2 и т. д.Поэтому, если вы хотите получить обратно запись (i,j)
из исходного двумерного массива Img
, вы должны индексировать в new_Img
следующим образом (пусть M
будет количеством строк в матрице):
linear_indx = (j-1)*M+i;
new_Img(linear_indx) == Img(i,j);
Обратите внимание, что многие другие библиотеки ожидают, что вещи будут упорядочены по строкам, поэтому вы можете сначала переставить изображение, а затем изменить его форму и соответствующим образом настроить линейный индекс.