Задача примерно такая: есть достаточно произвольный массив, допустим матрица, примерно такого вида:
Нужно выполнить замену, например:
Непонятно как это делать, я пробовал создать шаблон с которым можно было бы сравнивать каждый элемент, но не ясно как создать такой шаблон. Или как-то исхитриться с SameQ, но тоже ничего не выходит. Мне казалось в математике должны быть какие-то мощные селекторы, которые позволяют выбрать любой кусок в выражении, но в хелпе и гугле только какие-то тривиальные примеры их использования.
Ещё один глупый вопрос: существует ли способ мержить матрицы без плясок с бубном? Я имею ввиду встроенные функции. Чтобы из трёх столбцов a,b,c составить матрицу мне пришлось использовать такую конструкцию:
Код:
Transpose[Flatten[{Transpose[a], Transpose[b], Transpose[c]}, 1]]
Тоже самое можно сделать используя Join. Это очень плохой код, потому что таким способом нельзя создать функцию, которая генерировала бы матрицу размер которой зависит от входа.