MatLab: создание вектора - PullRequest
1 голос
/ 01 апреля 2012

Могу ли я создать вектор v3 = [1,100,2,99,3,98, ..., 100,1], используя только двоеточие?

Мне удалось создать его только с помощью цикла.

Ответы [ 3 ]

4 голосов
/ 01 апреля 2012

Попробуй это.На этой машине нет MATLAB, поэтому извиняюсь, если она не работает полностью.

vforward = [1:100];
vback = [100:-1:1];
vtot = [vforward; vback];
vtot = vtot(:)
0 голосов
/ 01 апреля 2012

Это лучшее, что я мог бы сделать в воскресенье утром:

cumsum([1, ((-1).^(mod(0:198,2))).*(99:-1:-99)])

Единственное достоинство других ответов в том, что это однострочник.Что не может быть большой заслугой.

0 голосов
/ 01 апреля 2012

Альтернативная версия, не требующая изменения формы:

v3 = zeros(1,200);
v3(1:2:end) = 1:100;
v3(2:2:end) = 100:-1:1; %# or: fliplr(v3(1:2:end))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...