2013-06-28 5 views
1

Я хочу создать матрицу двумерных векторов. Каждый вектор должен содержать индекс x/y (или i, j, если хотите) его собственной позиции в матрице.Создание матрицы матричных индексов

В основном я хочу что-то вроде этого:

matrix with two-dimensional vectors

Я знаю, что я мог бы создать это для цикла, но есть более простой способ? У Matlab есть так много полезных функций для подобных вещей, это удивляло меня не раз.

ответ

5

meshgrid поможет вам большую часть пути туда:

>> [X,Y] = meshgrid(0:2, 0:2) 

X = 

    0  1  2 
    0  1  2 
    0  1  2 


Y = 

    0  0  0 
    1  1  1 
    2  2  2 

Вы вообще не может иметь «матрицу векторов» в Matlab. Два других варианта:

  1. Сделайте «массив ячеек» векторов.
  2. Сделать трехмерную матрицу (NxMx2), где третий индексы измерения в X или Y (то есть строки или столбца)

Для реализации второго варианта:

coords(:,:,1) = X 
coords(:,:,2) = Y 

Followup вопрос: почему ты хочешь сделать это?

+3

Полезный кошачий может сделать все остальное: 'cat (3, X, Y);' –