Why vector don't equal when differentiating sin(pi*x)

1 view (last 30 days)
I don't understand why i keep getting : Error using plot vector must be the same length.
As the data shows s1= 1X100and s2=1X99 which i don't understand why it has that data.
clc;
sym('x');
s= sin(pi*x);
x= linspace(0,4);
subplot(2,1,1);
plot(x,s);
axis([0 4 -4 4]);
subplot(2,1,2);
s1= diff(s);
plot(x,s1)%Error at this line

Accepted Answer

madhan ravi
madhan ravi on 16 Nov 2018
Edited: madhan ravi on 16 Nov 2018
see subs() (link) to better understand
x= linspace(0,4);
s= sin(pi*x);
subplot(2,1,1);
plot(x,s);
axis([0 4 -4 4]);
subplot(2,1,2);
syms x
s1= diff(sin(pi*x),x);
x= linspace(0,4);
plot(x,subs(s1,x))

More Answers (2)

KSSV
KSSV on 16 Nov 2018
Edited: KSSV on 16 Nov 2018
YOu have to substitue the value of x in the sym objects s and s1 using subs. After that it will be converted to double and then you can plot them.
syms x;
s= sin(pi*x);
x= linspace(0,4);
subplot(2,1,1);
sr = subs(s,x) ;
plot(x,sr);
axis([0 4 -4 4]);
subplot(2,1,2);
s1= diff(s);
s1r = subs(s1,x) ;
plot(x,s1r)%Error at this line

KSSV
KSSV on 16 Nov 2018
YOu need not to use sums actually. Using syms is useless in your case.
x= linspace(0,4);
s= sin(pi*x);
subplot(2,1,1);
plot(x,s);
axis([0 4 -4 4]);
subplot(2,1,2);
s1= gradient(s);
plot(x,s1)%Error at this line

Community Treasure Hunt

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

Start Hunting!