Matlab:创建数学函数

时间:2014-02-09 15:58:38

标签: matlab function math

我是Matlab的新手,并尝试做一些数学问题 我知道如何使用内联方法创建函数, 但是,我需要知道如何使用它来定义具有不同域的函数。 例如:

  g(t) =  1   for t<=50
          2   for t> 50

这怎么可能? 我用T = [0:0.01:100]创建了一个时间向量但是如何将它们联系起来? 谢谢大家的时间:))

3 个答案:

答案 0 :(得分:2)

如果您还不熟悉Matlab,那么简单的解决方案肯定有点不直观:

function y = g(t)
y = ones(size(t));
y(t>50) = 2;
end

如果使用“内联方法”意味着生成一个匿名函数句柄,那就会变得棘手,但在这种情况下可能会以更惯用的方式:

g = @(t) (t>50) + 1;

答案 1 :(得分:2)

您可以使用anonymous function,并使用logical indexing定义它:

g = @(t) (t<=50) + 2*(t>50)

示例:

>> t = 45:52;
>> g(t)

ans =

     1     1     1     1     1     1     2     2

答案 2 :(得分:0)

只需使用if来检查参数并以通常的方式定义函数:

function output = g(t)
if t<=50
   output=1
end
   output=2