MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【求助】菜鸟求助(上一问题的延伸) (https://www.labfans.com/bbs/showthread.php?t=1542)

von 2008-03-05 09:00

【求助】菜鸟求助(上一问题的延伸)
 
在單位圓周上取等距的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么?谢谢。

dnping 2008-03-05 11:02

是的,用hold on保持图像,后续画图就会在当前保持的图像上画。
如果单位圆画出来的话,后续工作应该没问题了。

tolabfans 2008-03-05 11:18

t=linspace(0,2*pi,64);
x=exp(i*t);
y=x';
plot(y)
单位园画出来了,可以后面不会了,请指教

von 2008-03-05 12:07

[QUOTE=dnping;6177]是的,用hold on保持图像,后续画图就会在当前保持的图像上画。
如果单位圆画出来的话,后续工作应该没问题了。[/QUOTE]

谢谢 但是后续工作还是不会。继续请教。

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

这是第二种方案,你试一下吧,一样的结果。呵呵,我没办法了。

von 2008-03-05 16:24

恩 非常感谢 另外问一下r(1,64)的作用是什么?谢谢

dnping 2008-03-05 16:51

相对来说第二种要好些,shiqiang辛苦了,加上10币,鼓励一下……^_^

[quote]恩 非常感谢 另外问一下r(1,64)的作用是什么?谢谢[/quote]
请参照matlab的help,r指的是极坐标的半径,自己多尝试一下,会有所发现……


所有时间均为北京时间。现在的时间是 14:04

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.