matlab: расширить вектор с помощью двоеточия - PullRequest
1 голос
/ 22 февраля 2011

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

Например, используя двоеточие для создания матрицы, я могу сделать

< [0:4;5:9]

, что даст мне

< [
0 1 2 3 4
5 6 7 8 9]

Я хочу быть в состоянии сделать то же самое, но с предоставленным исходным вектором и диапазоном.Например, если мой исходный вектор равен [1; 3] и мой диапазон равен 1 вокруг существующих значений, я хочу получить следующий вывод:

< [
0 1 2
2 3 4]

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

Спасибо.

1 Ответ

2 голосов
/ 22 февраля 2011

Я думаю, это делает то, что вы хотите; измените vec и range соответственно:

vec = [1; 3]
range = 1
repmat(vec, 1, range * 2 + 1) + repmat([-range:range], size(vec))
...