Жаль, что это, вероятно, слишком поздно для вас, но я только что увидел ваш вопрос и, возможно, он полезен для других. В hansl (скриптовый скрипт и язык матрицы gretl) я мог бы подумать о нескольких возможностях:
Во-первых, если вам известно количество столбцов и значение i, решение может использовать проводной вектор-указатель (для я == 2 и перевалы (X) == 5 здесь):
X = X[, {1, 3,4,5}]
во-вторых, так как первое решение, вероятно, слишком ограничительный характер, можно сцепить левую и правую части матрицы, как:
X = X[, 1: i-1] ~ X[, i+1 :cols(X)]
Но проблема в том, что я должен не индексировать первый или последний столбец, или индексирование приведет к ошибке.
Так мое окончательное предложение, которое должно работать универсально:
X = selifc(X, ones(1, i-1) ~ 0 ~ ones(1, cols(X) - i))
Функция selifc() удаляет столбец, для которого второй вектор аргумент имеет 0 запись. Это также работает для i == 1 или i == cols (X). Более короткий вариант этого конечного раствора может быть:
X = selifc(X, seq(1, cols(X)) .!= i)
который делает поэлементное не-равный-с-я сравнение (=.!) Из индексов столбцов, построенных с функцией след(). Но это, вероятно, не так читаемо, как предыдущий.
удачи!
Это тот парень, который болтается с Chewbcc? –
Я хочу: (у вас есть идеи? –
Извините, я знаю Matlab, но не Гретл. Надеюсь, вам удастся с этим, это не очень популярный тег? –