获取从数组创建的函数的值,而不使用索引

时间:2018-02-01 10:57:24

标签: matlab function

让我们考虑以下脚本,我正在创建一个函数,例如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)?

1 个答案:

答案 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