Function function/ passing function/ varargin help?

Develop a function function M-file that returns the difference between the passed function's maximum and minimum value given a range of the independent variable. In addition, have the function generate a plot of the function for the range. Test it for the following cases:
f(t) = a*exp^(-b*t)*sin(t-c) from t = 0 to 6*pi
1. a = 8, b = 0.25, c = 2 below is what I have so far. I keep getting an error. I don't know what I am doing wrong. .I would appreciate any help that you could provide. Thank you.
%input:
% a = lower bound of range
% b = upper bound of range
% n = number of intervals
%output:
% fdiff = difference between max and minimum of a function
function fdiff = funcdiff(f, a, b, n, varargin)
x = linspace(a,b,n);
y = f(x, varargin{:});
fdiff = max(y) - min(y);
fplot(f, [a b], varargin{:})
end
% clear clc
% diff = @(t) a*exp^(-b*t)*sin(t-c);
% funcdiff(diff, 0, 6*pi, 180, 8, 0.25, 2)

回答(1 个)

KSSV
KSSV 2020-10-24
编辑:KSSV 2020-10-24
a = 8 ;
b = 0.25 ;
c = 2 ;
n = 180 ;
f = @(t) a*exp(-b*t).*sin(t-c);
t = linspace(a,b,n);
y = f(t);
fdiff = max(y) - min(y);
plot(t,y)

2 个评论

I am not sure I really understand the code you placed. It seems to work by itself but not as a funciton function and it doesn't use varargin.
Don't worry I'm just as stuck as you are lol
Professor Huang said that we can't use fplot when using varagin.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by