Set up a function corresponding to this graph

조회 수: 1 (최근 30일)
Danny Helwegen
Danny Helwegen 2019년 2월 10일
댓글: Danny Helwegen 2019년 2월 11일
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?
IMG-20190210-WA0001.jpg

채택된 답변

Adam Danz
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개)

Mark Sherstan
Mark Sherstan 2019년 2월 10일
Use the square function. The following should get you started:
t = linspace(0,3*pi)';
x = square(t);
plot(t,x)
ylim([-2,2])
  댓글 수: 1
Danny Helwegen
Danny Helwegen 2019년 2월 11일
thx for the answer, it was not exactly what i meant but still thanks

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by