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!