我是Matlab新手,试图做一些数学问题 我知道如何使用内联方法创建函数,但是我需要知道如何使用它来定义具有不同域的函数。 例如:Matlab:创建数学函数
g(t) = 1 for t<=50
2 for t> 50
这怎么可能? 我已经创建了一个使用T = [0:0.01:100]的时间向量,但是如何在两者之间进行关联?所有您的时间 谢谢:)
我是Matlab新手,试图做一些数学问题 我知道如何使用内联方法创建函数,但是我需要知道如何使用它来定义具有不同域的函数。 例如:Matlab:创建数学函数
g(t) = 1 for t<=50
2 for t> 50
这怎么可能? 我已经创建了一个使用T = [0:0.01:100]的时间向量,但是如何在两者之间进行关联?所有您的时间 谢谢:)
你可以使用一个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
只需使用一个if检查参数,并定义一个函数以通常的方式:
function output = g(t)
if t<=50
output=1
end
output=2
这个简单的解决方案固然有点不直观,如果你不熟悉Matlab的尚未:
function y = g(t)
y = ones(size(t));
y(t>50) = 2;
end
如果“内联方法”你的意思是产生一个匿名函数处理,即得到tricker,但在这种情况下,可以在一个更惯用方式:
g = @(t) (t>50) + 1;