trying to create a simple plot. Get error 'Vectors must be the same length'
显示 更早的评论
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.'"
回答(3 个)
Sean de Wolski
2013-11-5
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)
Wayne King
2013-11-5
编辑:Wayne King
2013-11-5
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.
Azzi Abdelmalek
2013-11-5
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));
类别
在 帮助中心 和 File 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!