Ploting two different vectors in the same figure
2 次查看(过去 30 天)
显示 更早的评论
Hi, I have two vectors v1=[0; -1/sqrt(2);1/sqrt(2)]; and v2=[0; 1/sqrt(2); -1/sqrt(2)]; which I am trying to plot on the same figure, with diffrent colors and the end and start points with stars (*). But when I do this and click "run" I get an error "Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix matches the number of rows in the second matrix. To perform elementwise multiplication, use '.*'." Is there a simpler way of writing this?
v1=[0; -1/sqrt(2);1/sqrt(2)];
t=linspace(0,1,100);
a = v1*t;
v2=[0; 1/sqrt(2); -1/sqrt(2)];
t=linspace(0,1,100);
b = v2*t;
plot3(a(:,1),a(:,2),a(:,3),'lineWidth',2,'Marker','*', 'r' );
hold on
plot3(b(:,1),b(:,2),b(:,3),'lineWidth',2,'Marker','*', 'g');
0 个评论
采纳的回答
Star Strider
2019-11-17
Use element-wise multiplication, then transpose ‘a’ and ‘b’ to use the references in your plot3 calls. Alos, specifically use the 'Color' name-value pair.
Try this:
v1=[0; -1/sqrt(2);1/sqrt(2)];
t=linspace(0,1,100);
a = (v1.*t).';
v2=[0; 1/sqrt(2); -1/sqrt(2)];
t=linspace(0,1,100);
b = (v2.*t).';
plot3(a(:,1),a(:,2),a(:,3),'lineWidth',2,'Marker','*', 'Color','r' );
hold on
plot3(b(:,1),b(:,2),b(:,3),'lineWidth',2,'Marker','*', 'Color','g');
hold off
grid on
I added grid on to give a reference in the plot.
4 个评论
Star Strider
2019-11-17
As always, my pleasure!
(I apologise for originally overlooking that you said you wanted the stars at the ends of the lines in your original Question.)
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!