【问题标题】:Finding coordinates points in circle sector matlab在圆扇区matlab中查找坐标点
【发布时间】:2015-07-29 16:33:35
【问题描述】:

我随机分配200分

r2 = rc*sqrt(rand(200,1));
theta2 = (pi/2)*rand(200,1);
x= r2.*cos(theta2);
y= r2.*sin(theta2);

这个圆圈会被细分成一些扇区我想知道这些点的坐标 我如何确定每个点的位置以及它将位于的每个扇区? 行业定义如下:

for i=1:N % N:Number of sector  
r= (rc/N)*i;   
ang=0:0.01:2*pi;
p=rcos(ang); 
%region(i)=i; 
plot(xp,yp);

【问题讨论】:

  • 你已经知道了每个点的位置...?
  • 你的意思是你想知道哪些点属于一个扇区?这可能只是一些非常简单的索引,但我们需要知道您如何定义您的部门。
  • 我想知道哪些点落在一个扇区中;例如点 (2.505, 0.9144) 属于第二个扇区。我的扇区定义如下: for i=1:N % N:Number of扇区 r= (rc/N)*i; ang=0:0.01:2*pi; xp=rcos(ang); yp=rsin(ang); %区域(i)=i;情节(xp,yp);坚持到底
  • 编辑您的问题以包含定义该部门的代码。作为评论读起来太难了
  • 请@Dan 我怎么做这个索引

标签: matlab


【解决方案1】:

半径为r0且中心在坐标原点的扇形是坐标为(r的点的集合, θ) 如:

  • r r0
  • θ1θ θ2

因此,如果 r0 是您的半径限制(标量),th1th2 是角度限制(标量),那么以下代码应该为您提供落入该扇区的点:

select = (r2 < r0) & (th1 < theta2) & (theta2 < th2);
xs = x(select);
ys = y(select);

测试结果:

figure();
plot(x,y,'ob', xs,ys,'or');

注意:请注意,您必须定义限制r0th1th2

【讨论】:

  • @Dan 我认为&amp; 是正确的运算符:我正在寻找满足所有条件的元素的逻辑索引。 &amp;&amp; 仅限于逻辑标量评估(“惰性”或短路逻辑运算符);详情请查看mathworks.com/help/matlab/ref/logicaloperatorsshortcircuit.html
  • 非常感谢您现在可以使用您的解决方案@CST-Link,
  • @Dan 感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 2019-07-31
相关资源
最近更新 更多