how to set a plot to start at zero

19 views (last 30 days)
WellsJ
WellsJ on 27 Sep 2017
Commented: husnir nasyuha on 27 Mar 2019
I am working with gait data and have resampled 1 gait cycle (~120 data points) in to 100 using
[c,d] = size(RawData);
GC_Percent = resample (RawData,100,c);
This seems to work fine but when i plot the data it starts at 1% is there a way to change the output the the first value is plotted at 0 on the y axis?

Accepted Answer

KSSV
KSSV on 27 Sep 2017
Subtract the minimum value (1%) from the data and then plot....
  2 Comments
WellsJ
WellsJ on 27 Sep 2017
apologies if i've misunderstood but that has shifted the data down to the x axis (obviously) i'm looking to shift it left on to the y axis.
Thank you
KSSV
KSSV on 27 Sep 2017
Try subtracting the minimum y value from y data.

Sign in to comment.

More Answers (1)

Jan
Jan on 27 Sep 2017
The output in the plot does not depend on the Y values, but on the provided x values:
y = rand(10, 10);
subplot(1,2,1);
plot(y)
subplot(1,2,2)
plot(0:9, y)
You posted the code for creating y, but the actual problem appears in the command for plotting, which you did not show.
By the way: resample applied an "antialiasing FIR lowpass filter". It is questionable if tis is really wanted for the analysis of the motion. I prefer a linear interpolation and have written for the same problem: FEX: ScaleTime
Yi = ScaleTime(Y, 100)
Are you sure that you want 100 time steps? Usually 101 steps are used in motion analysis to represent 100 intervals of 1%.
  4 Comments
Jan
Jan on 27 Sep 2017
I've posted a link to the code already, which solves the problem much faster than interp1. But if you prefer this function:
sY = size(Y, 1);
Yi = interp1(1:sY, Y, linspace(1, sY, 101));
husnir nasyuha
husnir nasyuha on 27 Mar 2019
Hi, may I know what is Y in this code refer to?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!