声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1189|回复: 4

[编程技巧] 关于一个高维的点,用圆形在低维表示的问题

[复制链接]
发表于 2011-11-8 21:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好,这样一个问题,比如有一个高维数据集x=(x1,x2,x3,x4),比如含有50个样本,它在二维空间可以任选两维数据,画出来一个点,现在我想以这些点为中心,以半径为r画个圆形来表示,matlab怎么实现画圆的操作呢? 谢谢大家。
回复
分享到:

使用道具 举报

发表于 2011-11-9 00:27 | 显示全部楼层
???
hh=plot(rand(10,1),'o');
set(hh,'MarkerSize',10)
 楼主| 发表于 2011-11-9 09:07 | 显示全部楼层
回复 2 # ChaChing 的帖子

佩服依旧,我看到您的程序是以一个点为圆心,然后画的圆,10设置的是圆的大小?
因为其实我的向量是高维的,但是我想让它在二维空间显示,所以取了四维中的两维。就是每个点x=(x1,x2)表示,那么怎么以这个x为圆心(有横坐标x1和纵坐标x2)画圆呢?我这里有一段,但是总感觉不太对。
里面的iris数据是matlab自带数据,这一段是可以直接运行的,希望ChaChing帮忙看看
load iris.dat
self=iris(1:50,1:4);
%self=norma(self);
[a,b]=size(self);
r=5;
for i=1:a
       t=0:0.5:359.5; t=2*pi/360*t;
        x=self(i,2)+r*cos(t);
        y=self(i,3)+r*sin(t);
        plot(x,y,'g-','linewidth',2);
        hold on
end
发表于 2011-11-9 12:01 | 显示全部楼层
回复 3 # 刘颖慧 的帖子

本来是以为绘图仅方便可视化, 所以简单使用MarkerSize控制
如LS的例子使用plot(self(:,2),self(:,3),'og','linewidth',2,'MarkerSize',40);即可
LZ可发现圆看来够圆, 但我没找著控制固定半径的方式
若是要控制固定半径, 只得使用LS的方式
我想LZ觉得怪, 是否因看来来够圆? 是吗?
那是因x/y轴不等长, 使用axis equal即可

评分

1

查看全部评分

 楼主| 发表于 2011-11-9 14:26 | 显示全部楼层
回复 4 # ChaChing 的帖子

是的,果然圆形没那么扁了。 谢谢ChaChing!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-30 07:32 , Processed in 0.114121 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表