【问题标题】:MATLAB Unexpected Parentheses errorMATLAB 意外的括号错误
【发布时间】:2015-12-08 16:29:33
【问题描述】:

我尝试在 MATLAB 中输入此表达式,但出现错误:

错误:不平衡或意外的括号或括号。

y = (exp(t./10)*sin(t.))./(t.^2 + 1)

我是 MATLAB 新手,不太确定那里出了什么问题。

【问题讨论】:

    标签: matlab parentheses


    【解决方案1】:

    删除sin(t.)....sin(t) 中多余的点。此外,如果您希望它是元素方面的,最好在 * 运算符之前添加一个点,就像您的其他操作一样:

    y = (exp(t./10).*sin(t))./(t.^2 + 1)
    

    为了证明这是可行的:

    >> t = 0:10;
    >> y = (exp(t./10).*sin(t))./(t.^2 + 1)
    
    y =
    
      Columns 1 through 7
    
             0    0.4650    0.2221    0.0190   -0.0664   -0.0608   -0.0138
    
      Columns 8 through 11
    
        0.0265    0.0339    0.0124   -0.0146
    

    【讨论】:

    • 谢谢,它确实有效!为什么我们不需要一个 .但是在 sin(t) 中的 t 之后?
    • 因为你没有!相反,你能告诉我为什么你认为我们需要它吗?我认为您不需要它,因为它只是不正确的语法。如果你能告诉我为什么你认为它应该在那里,我可以解释这种想法可能是正确的,也可能不是正确的。
    • @Ferreroire,点与数学运算相关联,而不是变量。因此 .* 是逐个元素的倍数,./ 是逐个元素的除法,而 .^ 是逐个元素的幂。与 *、/ 和 ^ 不同,即没有点,它们是矩阵运算。括号内不需要点,因为 a) 它是无效的语法,但是 b) sine 函数会自动执行逐个元素的操作。请注意,您实际上并不需要 exp(t./10) 操作中的点,因为除以 10 作为矩阵操作与逐个元素除以 10 相同。
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2017-09-13
    • 2014-10-23
    • 2015-09-03
    • 2014-06-29
    • 2013-01-22
    相关资源
    最近更新 更多