Я хочу начать с матрицы нулевого размера и продолжать назначать столбцы (количество строк, фиксированных всегда), либо с левой или с правой стороны в зависимости от направления выбор.Автоматически разворачивать левую сторону матрицы матрицы.
Некоторые из вариантов, которые я рассматриваю является:
1) Grow матрицы в правильном направлении, а затем использовать циклический сдвиг. Но если я это делаю, мне нужно ИЛИ новую матрицу с существующей матрицей, которая имеет разное количество столбцов.
Так что в этом случае мне нужно найти простой способ ORing двух матриц неравных размеров, которые я не знаю.
2) Как-то (пока не знаю) Я могу автоматически расширять левую сторону матрицы в Matlab, так как Matlab поддерживает разворот правой части матрицы, просто присваивая значения вне границы.
Примечание: я не хочу использовать отступы, так как в моей ситуации это приведет к множеству блоков if-else.
См., Например,
mat = [1 2 3; 4 5 6; 7 8 9]
Если направление влево и
new_mat = [10 11; 12 13; 14 15]
appended_mat = [10 11 1 2 3; 12 13 4 5 6; 14 15 7 8 9]
Пожалуйста, помогите мне.
Спасибо.
На самом деле я нахожусь избегающим множества операторов 'if', удобных при попытке написать короткую функцию для выполнения простых скалярных добавлений и/или умножений. Однако следите за читабельностью и удобством обслуживания вашего кода. Если вы хотите добавить несколько раз несколько раз, вы, вероятно, захотите написать оболочку функций вокруг кода, который вы в конечном итоге будете использовать. –