作业帮 > 综合 > 作业

请各位matlab大神看看,我的程序为什么画出来是个空白图?没有点也没有线?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/28 08:14:44
请各位matlab大神看看,我的程序为什么画出来是个空白图?没有点也没有线?

clear all;

for a=0.1:0.1:1;

d1=[1,0,0];

n1=[1/2,0,sqrt(3)/2];

n2=[1,0,0];

n3=[1/2,0,-sqrt(3)/2];

d2=d1-2*dot(d1,n1)*n1;

d3=d2-2*dot(d2,n2)*n2;

d4=d3-2*dot(d3,n3)*n3

p1=[-20,0,8];

o1=[0 0 5+a];

o2=[0 0 0+a];

o3=[0 0 -5+a]

p2=p1+dot((o1-p1),n1)/dot(d1,n1)*d1;

p3=p2+dot((o1-p2),n2)/dot(d2,n2)*d2;

p4=p3+dot((o3-p3),n3)/dot(d3,n3)*d3;

p5=p4+dot((p1-p4),n2)/dot(d4,n2)*d4

L=sqrt(dot((p2-p1),(p2-p1)))+sqrt(dot((p3-p2),(p3-p2)))+sqrt(dot((p4-p3),(p4-p3)))+sqrt(dot((p5-p4),(p5-p4)))

figure(1);plot(a,L);

hold on

end


我后来仔细看了下,实际上图上是有点的,可是怎么把这些点放大或者连起来?
请各位matlab大神看看,我的程序为什么画出来是个空白图?没有点也没有线?
这样画图就有了啊: plot(a,L, '--o');
再问: 我这样试了以后,点变成圆圈了,依然没有连线呀
再答: 哦,原来你是在一个点一个点的画啊 ……这样把所有的点放到一起画就好了:clc; clear all;
L = [];

for a=0.1:0.1:1;
    d1=[1,0,0];
    n1=[1/2,0,sqrt(3)/2];
    n2=[1,0,0];
    n3=[1/2,0,-sqrt(3)/2];
    d2=d1-2*dot(d1,n1)*n1;
    d3=d2-2*dot(d2,n2)*n2;
    d4=d3-2*dot(d3,n3)*n3
    p1=[-20,0,8];
    o1=[0 0 5+a];
    o2=[0 0 0+a];
    o3=[0 0 -5+a]
    p2=p1+dot((o1-p1),n1)/dot(d1,n1)*d1;
    p3=p2+dot((o1-p2),n2)/dot(d2,n2)*d2;
    p4=p3+dot((o3-p3),n3)/dot(d3,n3)*d3;
    p5=p4+dot((p1-p4),n2)/dot(d4,n2)*d4
    L = [L sqrt(dot((p2-p1),(p2-p1)))+sqrt(dot((p3-p2),(p3-p2)))+sqrt(dot((p4-p3),(p4-p3)))+sqrt(dot((p5-p4),(p5-p4)))]
end

plot([0.1:0.1:1], L, '--o');
再问: 厉害,谢谢啊!我想再麻烦你请教一下L = [L sqrt(dot((p2-p1),(p2-p1)))+sqrt(dot((p3-p2),(p3-p2)))+sqrt(dot((p4-p3),(p4-p3)))+sqrt(dot((p5-p4),(p5-p4)))]怎么理解?
再答: 把每次:sqrt(dot((p2-p1),(p2-p1)))+sqrt(dot((p3-p2),(p3-p2)))+sqrt(dot((p4-p3),(p4-p3)))+sqrt(dot((p5-p4),(p5-p4)))的出来的数值不断添加到向量L的尾部啊