Замените скалярами с матрицами

Создайте следующее выражение, представляющее синусоидальную функцию.

syms w t
f = sin(w*t);

Предположим, ваша задача включает создание матрицы, элементами которой являются синусоидальные функции со скоростями вращения, представленными матрицей Теплица. Во-первых, создайте матрицу Теплица 4 на 4.

W = toeplitz(sym([3 2 1 0]))
W =
[ 3, 2, 1, 0]
[ 2, 3, 2, 1]
[ 1, 2, 3, 2]
[ 0, 1, 2, 3]

Затем замените переменную w в выражении f с матрицей Теплица W. Когда вы заменяете скаляр в символьном выражении с матрицей, subs расширяет выражение в матрицу. В этом примере, subs расширяет f = sin(w*t) в матрицу 4 на 4, элементами которой является sin(w*t). Затем это заменяет w в той матрице с соответствующими элементами матрицы Теплица W.

F = subs(f, w, W)
F =
[ sin(3*t), sin(2*t),   sin(t),        0]
[ sin(2*t), sin(3*t), sin(2*t),   sin(t)]
[   sin(t), sin(2*t), sin(3*t), sin(2*t)]
[        0,   sin(t), sin(2*t), sin(3*t)]

Найдите сумму этих синусоид в t = π, t = π/2, t = π/3, t = π/4, t = π/5, и t = π/6. Во-первых, найдите сумму всех элементов матричного F. Здесь, первый вызов sum возвращает вектор-строку, содержащий суммы элементов в каждом столбце. Второй вызов sum возвращает сумму элементов того вектора-строки.

S = sum(sum(F))
S =
6*sin(2*t) + 4*sin(3*t) + 4*sin(t)

Теперь используйте subs оценивать S для особых значений переменной t.

subs(S, t, sym(pi)./[1:6])
[ 0,...
  0,...
  5*3^(1/2), 4*2^(1/2) + 6,...
  2^(1/2)*(5 - 5^(1/2))^(1/2) + (5*2^(1/2)*(5^(1/2) + 5)^(1/2))/2,...
  3*3^(1/2) + 6]

Также можно использовать subs заменять скалярный элемент матрицы с другой матрицей. В этом случае, subs расширяет матрицу, чтобы разместить новые элементы. Например, замените нулевые элементы матричного F с вектор-столбцом [1;2]. Исходная 4-by-4 матрица F расширяется до 8 4 матрица. subs функционируйте копирует каждую строку исходной матрицы, не только строки, содержащие нулевые элементы.

F = subs(F, 0, [1;2])
F =
[ sin(3*t), sin(2*t),   sin(t),        1]
[ sin(3*t), sin(2*t),   sin(t),        2]
[ sin(2*t), sin(3*t), sin(2*t),   sin(t)]
[ sin(2*t), sin(3*t), sin(2*t),   sin(t)]
[   sin(t), sin(2*t), sin(3*t), sin(2*t)]
[   sin(t), sin(2*t), sin(3*t), sin(2*t)]
[        1,   sin(t), sin(2*t), sin(3*t)]
[        2,   sin(t), sin(2*t), sin(3*t)]