让我们考虑以下脚本,我正在创建一个函数,例如y = f(x)
:
x = 0:0.01:2;
y = 0:0.02:4;
figure(1);clf;
plot(x, y);
假设我想得到一些f值,如f(0.5),f(1)或f(1.5)。有没有办法用matlab函数获取这些值,或者我必须首先得到x,0.5和1中的索引,以获得f(x)?
答案 0 :(得分:5)
如果您有实际功能,可以将其称为f(x)
...
f = @(xi) 2.*xi;
f(0.5) % >> ans = 1
f(0.5001) % >> ans = 1.0002
f(10) % >> ans = 20
如果您的示例代码中有两个相应的数组,则可以使用x
数据的索引
x = 0:0.01:2;
y = 0:0.02:4;
y(x==0.5) % >> ans = 1
y(x==0.5001) % >> ans = []
y(x==10) % >> ans = []
如果您有第二种情况,但希望进行插值以避免y(x==0.5001)=[]
结果,则可以设置类似的函数
x = 0:0.01:2;
y = 0:0.02:4;
f = @(xi) interp1( x, y, xi );
f(0.5) % >> ans = 1
f(0.5001) % >> ans = 1.0002
f(10) % >> NaN