想必很多小伙伴在使用matlab计算函数的解时经常会遇到如下问题吧:
未定义与 'function_handle' 类型的输入参数相对应的运算符 '+'
未定义与 'function_handle' 类型的输入参数相对应的运算符 '-'
未定义与 'function_handle' 类型的输入参数相对应的运算符 '/'
未定义与 'function_handle' 类型的输入参数相对应的运算符 '*'
...
这是因为我们在定义函数时时常会使用匿名函数,而匿名函数返回的是句柄,而不是一个函数的值,从而导致报错,那么有什么方法可以解决这一问题呢?
% Matlab
t = 1:10;
f = @(x)x.^2;
g = @(x)x+1;
R = f + g; % 此时为两个函数句柄相加,会报错
% 报错:
% 未定义与 'function_handle' 类型的输入参数相对应的运算符 '+'
% 正确使用方法:
% 给函数句柄添加参数
R = f(t) + g(t); % 此时为两个函数的返回值进行相加,自然不会报错
所以在使用函数句柄时需要格外注意:
记得给函数句柄传递参数,计算所得函数返回值后,在进行运算符操作。