f
является функцией, но ее типом является cfit not дескриптор функции .
integral()
функция требует дескриптор функции , вы можете преобразовать cfit в дескриптор функции перед получением интегрального
Код выглядит следующим образом:
x = rand(5,1);
dat = rand(5,1);
f = fit(x,dat,'linearinterp');
% Create a new function handle
f = @(x)f(x);
q = integral(f, 3e4,9e4, 'ArrayValued', 1)
2) Что также делает ... 'Array-valueed', 1)?Это не сработало, пока я не вставил это, поэтому он должен что-то делать
f
- это кусочная функция , следующая иллюстрация основана на предположении, что f
это 2-х кусочная линейная функция , но ее можно использовать и для n-кусочная функция .
Задача для функции fit()
находит параметры:
С точки зрения кода f
выглядит
function y = f(x,a,b,c,d,k)
% PIECEWISELINE A line made of two pieces
% that is not continuous.
y = zeros(size(x));
% This example includes a for-loop and if statement
% purely for example purposes.
for i = 1:length(x)
if x(i) < k
y(i) = a.* x(i) + b;
else
y(i) = c.* x(i) + d;
end
end
end
Чтобы построить дескриптор функции, просто используйте fplot(f)
Вот график для f
Подводя итог, f
, вероятно, имеет более одного выражения, поэтому я установил для ArrayValued
значение true , чтобы integral()
функция известна f
имеет более одного выражения, опущение означает, что f
имеет одно выражение, которое не соответствует действительности.