Set up a function corresponding to this graph
1 次查看(过去 30 天)
显示 更早的评论
hi, the following sketch was given to me and i need to set up a corresponding function. One problem, i have absolutely no clue, can somebody help me?
0 个评论
采纳的回答
Adam Danz
2019-2-10
编辑:Adam Danz
2019-2-10
In addition to the square() function (requires signal processing toolbox) and the heaviside() function (symbolic math toolbox), here's a much lower level, custom function that produces one step as is depicted in your image.
% Define step function
% * x is a vector, monotonically increasing
% * start: where the step should rise (scalar, member of x)
% * width: the width of the step (scalar, positive)
% * height: the height of the step (scalar, positive or negative)
% * base: the minimum base of the step (scalar)
stepFunc = @(x, start, width, height, base) ...
[zeros(1,sum(x < start)), 0, ones(1, sum(x >= start & x <= start+width)), 0, zeros(1, sum(x > start+width))] ...
* height + base;
% Calculate step function
% Define parameters
x = 0:1000;
start = 200;
width = 250;
height = 4;
base = 1.0;
y = stepFunc(x, start, width, height, base);
% Now we have to adjust x so that there are duplicate values where the step rises and falls
% in order to make it vertical
stepIdx = find(abs(diff(y)) == abs(height));
xIdx = [1:stepIdx(1), stepIdx(1):stepIdx(2)-1, stepIdx(2)-1:length(x)];
newX = x(xIdx);
% Plot results
figure
plot(newX, y)
ylim(ylim + [-1.1, 1.1]*range(ylim)) %incease y lim by 10%
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!