用矩阵替换标量

创建以下表达式表示正弦函数的表达式。

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

假设,您的任务涉及创建一个矩阵,其元素是正弦函数,其具有由toeplitz矩阵表示的角速度。首先,创建一个4×4的Toeplitz矩阵。

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随着Toeplitz矩阵W.。当您用矩阵中的符号表达式替换标量时,subs将表达式扩展为矩阵。在这个例子中,subs拓展f = sin(w * t)进入一个4×4个矩阵,其元素是罪(w * t)。然后它替换W.在该矩阵中,具有Toeplitz矩阵的相应元素W.

f =子(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 =π/ 2t =π/ 3t =π/ 4t =π/ 5, 和t =π/ 6。首先,找到矩阵的所有元素的总和F。在这里,第一次打电话返回包含每列中的元素和的行矢量。第二个电话返回该行向量的元素之和。

s = sum(sum(f))
s = 6 * sin(2 * t)+ 4 * sin(3 * t)+ 4 * sin(t)

现在,使用subs评估S.对于变量的特定值T.

句子(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×4矩阵F扩展到8×4矩阵。这subs函数重复原始矩阵的每一行,不仅是包含零元素的行。

f =子(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)]