娜慕 发表于 2009-3-19 15:17

为什么用PLOT点对点的连接不上呢

%一些同心圆中,每层呈现鱼鳞状,可是我用plot函数画时,点跟点之间联系不紧密,尤其是外层,请大家指正,谢谢
theta=linspace(0,2*pi,50); rad=1:1:11;
x=cos(theta)'*rad; y=sin(theta)'*rad;
plot(x,y); hold on; axis equal
for i=0:1:10
    for j=1:1:i+1
      plot([(i+1)*cos(j*pi/2/(i+2)),i*cos(j*pi/2/(i+1))],[(i+1)*sin(j*pi/2/(i+2)),i*sin(j*pi/2/(i+1))]);
      plot(,[(i+1)*sin(j*pi/2/(i+1)),(i+1)*sin((j+1)*pi/2/(i+2))]);
      hold on
    end
end
plot([-11,11],); plot(,[-11,11]); axis([-11,11,-11,11])

[ 本帖最后由 ChaChing 于 2009-3-23 18:33 编辑 ]

ChaChing 发表于 2009-3-23 08:12

早看过了, LZ的程序没报错, 但水平有限, 不清楚LZ的问题!?

ydlcsu 发表于 2009-3-23 14:31

回复 楼主 娜慕 的帖子

你这个问题和matlab没关系啊。是画图用的公式有问题吧?

ChaChing 发表于 2009-3-24 10:02

個人水平專業有限, 建議樓主說清楚些, 並看下本版規則and加強發問題方式!

娜慕 发表于 2009-4-2 10:00

有限元网格的表示矩阵

如图所示的有限元,我想用矩阵A表示有限元中节点的关系
A(i,i)=同节点i连接的节点数,也就是邻接节点数
A(i,j)=0(节点i与j不相连)或-1(节点i与j相连)
可是图中有几百个节点,而且每一层的点数不同,难道我得一个个地写吗,这不是体力劳动吗?
一想起要把循环用到矩阵中,我就木讷了,请大家指教,谢谢!

[ 本帖最后由 ChaChing 于 2009-4-2 20:49 编辑 ]

娜慕 发表于 2009-4-2 10:59

回复 地板 ChaChing 的帖子

我的意思是第一象限中横向的线用PLOT命令可以连接上,可是纵向的线为什么连接不上呢?
这个问题我后来解决了,我变了一下思路,就是把角度变了一下,既然纵向的线连接不山,我就用PI/2减去横向的角度,这样纵向的线也能连接上了。
估计是循环有问题

ChaChing 发表于 2009-4-2 11:19

回复 5楼 娜慕 的帖子

建议LZ给齐程式, 与大家分享

娜慕 发表于 2009-4-2 19:33

回复 6楼 ChaChing 的帖子

呵呵,不好意思,忘了,经验不足,在此补过啦
theta=linspace(0,2*pi,50);
rad=1:1:11;
x=cos(theta)'*rad;
y=sin(theta)'*rad;
plot(x,y);
hold on
axis equal
for i=0:1:10 %循环算法画出有限元图
    for j=1:1:i+1
      plot([(i+1)*cos(j*pi/2/(i+2)),i*cos(j*pi/2/(i+1))],[(i+1)*sin(j*pi/2/(i+2)),i*sin(j*pi/2/(i+1))]); %画出第一象限中横向线
      plot([(i+1)*cos(pi-j*pi/2/(i+2)),i*cos(pi-j*pi/2/(i+1))],[(i+1)*sin(pi-j*pi/2/(i+2)),i*sin(pi-j*pi/2/(i+1))]); %画出第二象限中横向线
      plot([(i+1)*cos(pi+j*pi/2/(i+2)),i*cos(pi+j*pi/2/(i+1))],[(i+1)*sin(pi+j*pi/2/(i+2)),i*sin(pi+j*pi/2/(i+1))]); %画出第三象限中横向线
      plot([(i+1)*cos(-j*pi/2/(i+2)),i*cos(-j*pi/2/(i+1))],[(i+1)*sin(-j*pi/2/(i+2)),i*sin(-j*pi/2/(i+1))]); %画出第四象限中横向线
      plot([(i+1)*cos(pi/2-j*pi/2/(i+2)),i*cos(pi/2-j*pi/2/(i+1))],[(i+1)*sin(pi/2-j*pi/2/(i+2)),i*sin(pi/2-j*pi/2/(i+1))]); %画出第一象限中纵向线
      plot([(i+1)*cos(pi/2+j*pi/2/(i+2)),i*cos(pi/2+j*pi/2/(i+1))],[(i+1)*sin(pi/2+j*pi/2/(i+2)),i*sin(pi/2+j*pi/2/(i+1))]); %画出第二象限中纵向线
      plot([(i+1)*cos(3*pi/2-j*pi/2/(i+2)),i*cos(3*pi/2-j*pi/2/(i+1))],[(i+1)*sin(3*pi/2-j*pi/2/(i+2)),i*sin(3*pi/2-j*pi/2/(i+1))]); %画出第三象限中纵向线
      plot([(i+1)*cos(3*pi/2+j*pi/2/(i+2)),i*cos(3*pi/2+j*pi/2/(i+1))],[(i+1)*sin(3*pi/2+j*pi/2/(i+2)),i*sin(3*pi/2+j*pi/2/(i+1))]); %画出第四象限中纵向线
      hold on
    end
end

ChaChing 发表于 2009-4-2 20:37

LZ的图与另一帖不同!?
好奇画这个干嘛!? 目的为何?
还有直觉LZ程序上有改进空间!

[ 本帖最后由 ChaChing 于 2009-4-2 21:02 编辑 ]

娜慕 发表于 2009-4-2 21:22

回复 8楼 ChaChing 的帖子

呵呵,实验室要用的,应该是有改进的空间,可是我不会~
页: [1]
查看完整版本: 为什么用PLOT点对点的连接不上呢