如何在MATLAB中忽略包含变量的指数函数?

时间:2014-11-28 19:12:05

标签: matlab exponential

我正在编写一些物理问题的代码。我想简单地忽略包含变量的条款' 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];

我无法做到。任何人都可以帮我解决这个问题吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

几条评论:

    已经支持
  1. i作为MATLAB中的虚数。声明i = sqrt(-1);是多余的。 real也是MATLAB中的一个函数。它基本上返回MATLAB中定义的复数的实部。不要做这个象征性的。通过这样做,您将使用该变量名称遮蔽该函数。

  2. 不要syms temp。你正在使这个变量具有象征性,但你在最后一行代码中覆盖了它的行为。


  3. 现在,你的意思是"忽视"将表达式中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]