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)

Réponses (1)

KSSV
KSSV le 24 Oct 2020
Modifié(e) : KSSV le 24 Oct 2020
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 commentaires

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.
Cole Fontana
Cole Fontana le 26 Oct 2020
Modifié(e) : Cole Fontana le 26 Oct 2020
Don't worry I'm just as stuck as you are lol
Professor Huang said that we can't use fplot when using varagin.

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by