Generating empty interval of points
조회 수: 4 (최근 30일)
이전 댓글 표시
Dear All,
I want to generate points in the interval [20,80] and have the interval [40,60] as an empty area. I wrote this code but I don't now how to complete it. I'd appreciate any help.
LB=20;UB=80;
x = LB+(UB-LB)*rand(50,1);
y =LB+(UB-LB)*rand(50,1);
if x>40 | x<60| y>40 | y<60;
[x]==0;[y]==0;
plot(x,y, '.')
but it gives an error.
Regards
댓글 수: 0
채택된 답변
Star Strider
2015년 1월 14일
This seems to work:
LB=20;UB=80;
x = LB+(UB-LB)*rand(50,1);
y = LB+(UB-LB)*rand(50,1);
idx = [((x > 40) & (x < 60)) | ((y > 40) & (y < 60))];
x(idx) = [];
y(idx) = [];
figure(1)
plot(x, y, '+')
grid
The ‘idx’ variable tests for the conditions and creates a logical vector then used to assign the elements of ‘x’ and ‘y’ to ‘empty’ rather than zero. The plot shows that there are no points in the area you want cleared.
댓글 수: 5
추가 답변 (1개)
Roger Stafford
2015년 1월 14일
Do this:
LB=20;UB=80;
x = LB+(UB-LB)*rand(50,1);
y = LB+(UB-LB)*rand(50,1);
t = ((x<=40)|(x>=60)) & ((y<=40)|(y>=60));
x = x(t);
y = y(t);
plot(x,y,'.')
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!