查看完整版本 : 【求助】菜鸟求助(上一问题的延伸)
在單位圓周上取等距的64個點,Mi, i=1,2,…,64
1. 畫出綫段OMi, i=1,2,…,64, 其中原點O為圓心。
記矢量ai= OMi,Bi=A*ai 其中二阶矩阵A=【2,-1;-2,3】 。畫出矢量 (可用短綫段表示), 要求Bi 的始點落在Mi , i=1,2,…,64。
觀察你得到的圖形。你從中能得出什麼結論?
请问这个怎么画啊?我顶多也就画出一个单位圆啊。然后就不知道怎么弄了,继续在原图上画是HOLD on么?谢谢。
是的,用hold on保持图像,后续画图就会在当前保持的图像上画。
如果单位圆画出来的话,后续工作应该没问题了。
tolabfans
2008-03-05, 11:18
t=linspace(0,2*pi,64);
x=exp(i*t);
y=x';
plot(y)
单位园画出来了,可以后面不会了,请指教
是的,用hold on保持图像,后续画图就会在当前保持的图像上画。
如果单位圆画出来的话,后续工作应该没问题了。
谢谢 但是后续工作还是不会。继续请教。
shiqiang
2008-03-05, 12:35
theta=linspace(0,2*pi,64);
x=sin(theta);
y=cos(theta);
plot(x,y);
axis equal;
hold on;
for i=1:64;
a=[0;x(i)];
b=[0;y(i)];
line(a,b);
end
shiqiang
2008-03-05, 12:36
上面的程序就是你所需要的,但是由于计算精度的问题,绘制的图形跟理想的有点差距。希望大家继续讨论,寻求更好的方法。
shiqiang
2008-03-05, 13:00
t=linspace(0,2*pi,64);
r(1,64)=1;
polar(t,r);
hold on
for i=1:64;
t=t+pi/32;
polar(t,r)
end
shiqiang
2008-03-05, 13:02
这是第二种方案,你试一下吧,一样的结果。呵呵,我没办法了。
恩 非常感谢 另外问一下r(1,64)的作用是什么?谢谢
相对来说第二种要好些,shiqiang辛苦了,加上10币,鼓励一下……^_^
恩 非常感谢 另外问一下r(1,64)的作用是什么?谢谢
请参照matlab的help,r指的是极坐标的半径,自己多尝试一下,会有所发现……
恩 我刚开始上matlab的课,这是老师课后要我们练习的。不太会啊
另外 你也是长沙的,老乡啊老乡
恩 关于题目的后续部分,是应该用Plot画出线来吧,但是怎么编循环程序让它一次把64条画出来呢?谢谢
shiqiang
2008-03-05, 18:05
r(1,64)=1;
这句是赋值的意思,给矩阵r的1行64列赋值为1;这句话,也可以是r(1)=1;只要使r为一个向量就可以。
第二种的整体思路是
在极坐标轴上,利用旋转的首个位置(即起始直线)会在极坐标轴上标出这个特点来实现的,所以我想通过每次定义不同的起始直线来实现你所要求的那些线条。
综合了一下大家的思路
t=linspace(0,2*pi,64);
x=exp(i*t);
y=x';
plot(y);m=0; A=[2 -1;-2 3];R=1;
kk=2*pi/64;
for k=0:kk:2*pi-kk
xi(m+1)=R*cos(k);
yi(m+1)=R*sin(k);
hold on
plot([0 xi(m+1)],[0 yi(m+1)]);
m=m+1;
end; m=0;for k=0:kk:2*pi-kk
xi(m+1)=R*cos(k);
yi(m+1)=R*sin(k);
hold on; line([0 xi(m+1)-yi(m+1)],[0 (-2)*xi(m+1)+2*yi(m+1)]); m=m+1;
end
axis equal 但后面一问为什么line([0 xi(m+1)-yi(m+1)],[0 (-2)*xi(m+1)+2*yi(m+1)]); 这样子不对?
t=linspace(0,2*pi,64);
x=exp(i*t);
y=x';
plot(y);m=0; A=[2 -1;-2 3];R=1;
kk=2*pi/64;
for k=0:kk:2*pi-kk
xi(m+1)=R*cos(k);
yi(m+1)=R*sin(k);
hold on
plot([0 xi(m+1)],[0 yi(m+1)]);line([xi(m+1) 2*xi(m+1)-yi(m+1)],[yi(m+1) (-2)*xi(m+1)+3*yi(m+1)])
m=m+1;
end 改成这样子 但是斜率应该不是一样的啊
t=linspace(0,2*pi,64);
x=exp(i*t);
y=x';
plot(y);m=0; A=[2 -1;-2 3];R=1;
kk=2*pi/64;
for k=0:kk:2*pi-kk
xi(m+1)=R*cos(k);
yi(m+1)=R*sin(k);
hold on
plot([0 xi(m+1)],[0 yi(m+1)]);line([xi(m+1) 3*xi(m+1)-yi(m+1)],[yi(m+1) (-2)*xi(m+1)+4*yi(m+1)])
m=m+1;
end
终于弄出来了 希望以后能继续讨论
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.