2014-10-16 1 views
2

У меня есть некоторые векторы с произвольной длины, как,Expand вектор-столбец влево и вправо с определенным смещением с образованием 2D матрицы - MATLAB

a = [ 20 
     78 
     90 
     180]; 

b = [ 54 
     102 
     1020]; 

Как я могу производить метрику как n = 3 целые числа до и после каждого элемента, как ,

a1 = [17 18 19 20 21 22 23   b1 = [51 52 53 54 55 56 57 
     75 76 77 78 79 80 81    99 100 101 102 103 104 105 
     87 88 89 90 91 92 93    1017 1018 1019 1020 1021 1022 1023]; 
     177 178 179 180 181 182 183]; 

без петель, Спасибо заранее,

ответ

6

Идеальная установка для использования bsxfun с ручкой - @plus

n = 3; 
a1 = bsxfun(@plus,a,-n:n) 
b1 = bsxfun(@plus,b,-n:n) 

Здесь -n:n действует как суммирование (из-за смещения) @plus массива.

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