我是Matlab的新手,并尝试做一些数学问题 我知道如何使用内联方法创建函数, 但是,我需要知道如何使用它来定义具有不同域的函数。 例如:
g(t) = 1 for t<=50
2 for t> 50
这怎么可能? 我用T = [0:0.01:100]创建了一个时间向量但是如何将它们联系起来? 谢谢大家的时间:))
答案 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