我正在编写一些物理问题的代码。我想简单地忽略包含变量的条款' t'并使我的矩阵独立于时间'。
syms t real
syms temp
i=sqrt(-1);
temp=[exp(t*2*i)*exp(-t*5*i) + 12 exp(3*t*i); exp(-3*t*i) exp(-t*2*i)*exp(t*5*i)+8];
我对外出的期望是
temp= [12 0;0 8];
我无法做到。任何人都可以帮我解决这个问题吗? 提前谢谢。
答案 0 :(得分:1)
几条评论:
i
作为MATLAB中的虚数。声明i = sqrt(-1);
是多余的。 real
也是MATLAB中的一个函数。它基本上返回MATLAB中定义的复数的实部。不要做这个象征性的。通过这样做,您将使用该变量名称遮蔽该函数。
不要syms temp
。你正在使这个变量具有象征性,但你在最后一行代码中覆盖了它的行为。
现在,你的意思是"忽视"将表达式中t
的任何值转换为0.确实没有一种简单的方法可以做到这一点。在MATLAB中没有任何实用工具(至少据我所知),它可以选择数组或矩阵中的所有数学表达式,如果有条件中有t
,则应将它们设置为0
我唯一可以建议的是,如果你替换t = 0
,那么从所有元素中减去1。这是因为当您将t = 0
替换为矩阵中的每个表达式exp(0) = 1
时,所有元素都会有一个共同的1
项,因为每个表达式都有一个指数项。因此:
out = subs(temp, 't', 0) - 1;
out =
[ 12, 0]
[ 0, 8]