2013-05-20 4 views
0

Говорят, что у меня есть две матрицы следующих размеров:Картирование пикселей двух матриц

matrix_1 = 30090x2 

matrix_2 = 170x177 

считать, что число rows п matrix_1 представляет число pixels. Вы можете видеть, что размер matrix_2 равен числу пикселей.

То, что я пытаюсь сделать, это map пиксели в matrix_1 к пикселям в matrix_2, например, что, например:

matrix_1(1) = matrix_2(1) 
matrix_1(2) = matrix_2(2) 
matrix_1(3) = matrix_2(3) 
...... 
...... 
matrix_1(n) = matrix_2(n) 

Как я могу сделать это в matlab?

ответ

1

Вот вариант

matrix_1 = matrix_2(:); 

, который копирует элементы (все из них) из matrix_2 в один длинную колонну.

В ваших данных вы сказали, что matrix_1 имеет две колонки, вы можете добавить еще один пустой столбец, выполнив, например

matrix_1 = [matrix_1 zeros(size(matrix_1))]; 
1

быстрый способ сначала преобразовать как матрицу в вектор-столбец с помощью следующей команды: matrix_1 = matrix_1 (:); matrix_2 = matrix_2 (:);

И так как обе матрицы имеют одинаковый размер, вы можете выполнить требуемые операции.

Если вам нужно восстановить матрицу оригинальной шкалы, вы можете сделать это с помощью изменения формы команды матрицы matrix_1 = Reshape (матрица matrix_1, 30090,2)

см следующих ссылок: http://www.mathworks.com/help/matlab/ref/reshape.html

Смежные вопросы