Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-03-05, 12:35   #1
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

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   #2
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

上面的程序就是你所需要的,但是由于计算精度的问题,绘制的图形跟理想的有点差距。希望大家继续讨论,寻求更好的方法。
shiqiang 当前离线   回复时引用此帖
旧 2008-03-05, 13:00   #3
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

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   #4
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

这是第二种方案,你试一下吧,一样的结果。呵呵,我没办法了。
shiqiang 当前离线   回复时引用此帖
旧 2008-03-05, 16:24   #5
von
初级会员
 
注册日期: 2008-03-05
年龄: 36
帖子: 9
声望力: 0
von 正向着好的方向发展
默认

恩 非常感谢 另外问一下r(1,64)的作用是什么?谢谢
von 当前离线   回复时引用此帖
旧 2008-03-05, 16:51   #6
dnping
高级会员
 
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24
dnping 是一个将要出名的人
默认

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

引用:
恩 非常感谢 另外问一下r(1,64)的作用是什么?谢谢
请参照matlab的help,r指的是极坐标的半径,自己多尝试一下,会有所发现……
dnping 当前离线   回复时引用此帖
旧 2008-03-05, 17:27   #7
von
初级会员
 
注册日期: 2008-03-05
年龄: 36
帖子: 9
声望力: 0
von 正向着好的方向发展
默认

恩 我刚开始上matlab的课,这是老师课后要我们练习的。不太会啊
另外 你也是长沙的,老乡啊老乡
von 当前离线   回复时引用此帖
旧 2008-03-05, 17:36   #8
von
初级会员
 
注册日期: 2008-03-05
年龄: 36
帖子: 9
声望力: 0
von 正向着好的方向发展
默认

恩 关于题目的后续部分,是应该用Plot画出线来吧,但是怎么编循环程序让它一次把64条画出来呢?谢谢
von 当前离线   回复时引用此帖
旧 2008-03-05, 18:05   #9
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

r(1,64)=1;
这句是赋值的意思,给矩阵r的1行64列赋值为1;这句话,也可以是r(1)=1;只要使r为一个向量就可以。
第二种的整体思路是
在极坐标轴上,利用旋转的首个位置(即起始直线)会在极坐标轴上标出这个特点来实现的,所以我想通过每次定义不同的起始直线来实现你所要求的那些线条。
shiqiang 当前离线   回复时引用此帖
旧 2008-03-05, 20:03   #10
von
初级会员
 
注册日期: 2008-03-05
年龄: 36
帖子: 9
声望力: 0
von 正向着好的方向发展
默认

综合了一下大家的思路
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)]); 这样子不对?
von 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:34


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