trying to create a simple plot. Get error 'Vectors must be the same length'
1 view (last 30 days)
Show older comments
I am trying to plot a function of time, and its time derivative, in a 3d plot.
This is what I typed
t = [0:0.1:4]
x = exp(-(4-sqrt(3))*t)+exp(-(4+sqrt(3))*t)
v = diff(x)./0.1
plot3(x,v,t);
and I get the error " 'Error using plot3 Vectors must be the same lengths.'"
0 Comments
Answers (3)
Sean de Wolski
on 5 Nov 2013
When you take the diff of t it subtracts each element of t from the next element leaving t one element shorter
diff(1:3)
doc diff
To plot with diff typically I zero or nan pad the input to diff or to plot.
plot(x,[v 0],t)
0 Comments
Wayne King
on 5 Nov 2013
Edited: Wayne King
on 5 Nov 2013
Because when you use diff(), you end up with vector with one less element, so that t and x are one element greater in length than v.
t = [0:0.1:4];
x = exp(-(4-sqrt(3))*t)+exp(-(4+sqrt(3))*t);
v = diff(x)./0.1;
plot3(x(2:end),v,t(2:end));
or do what Sean suggests.
0 Comments
Azzi Abdelmalek
on 5 Nov 2013
t = [0:0.1:4]
x = exp(-(4-sqrt(3))*t)+exp(-(4+sqrt(3))*t)
v = gradient(x)./0.1
plot3(x,v,t);
%or
t = [0:0.1:4]
x = exp(-(4-sqrt(3))*t)+exp(-(4+sqrt(3))*t)
v = diff(x)./0.1
plot3(x(2:end),v,t(2:end));
0 Comments
See Also
Categories
Find more on Graphics Performance in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!