How do I fill a rectangle (or circle) in a matrix?
Show older comments
Imagine the following matrix.
1 1 1 1 1 1 1 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
I know the coordinates of the 10's. they are stored in A and B. How do I use the known coordinates of 10's to fill in the 1's within the square of 10's? thanx for help.
I have simplified my problem here. I have extracted the essence of the problem above. But for those interested I'll explain the following. I want to create a filled circle inside a bigger matrix. Since I have the coordinates of the outer circle, I need a way to fill in the inside. My code:
k=zeros(300,300)+200
for theta=0:.001:7;
radius=10
[X,Y] = pol2cart(theta,radius);
A=[round(X)+radius];
B=[round(Y)+radius];
ring = sub2ind(size(K),A,B);
kleur=90;
K(A,B) = kleur;
end
Accepted Answer
More Answers (3)
No toolboxes and no loops are required:
>> M = [...
1 1 1 1 1 1 1 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1];
>> X = M>1;
>> M(X | cumsum(X)==1) = 10
M =
1 1 1 1 1 1 1 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 Comment
Chad Greene
on 8 Jun 2016
Nice!
Chad Greene
on 8 Jun 2016
If you have the Image Processing toolbox,
K= [1 1 1 1 1 1 1 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 1 1 1 10 1 1 1
1 1 10 10 10 10 10 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1];
K2 = 10*imfill(K==10,'holes')
Azzi Abdelmalek
on 8 Jun 2016
K=ones(30);
theta=0:.001:7;
radius=10
[X,Y] = pol2cart(theta,radius);
A=[round(X)+radius]+1;
B=[round(Y)+radius]+1;
ring = sub2ind(size(K),A',B');
kleur=90;
K(A,B) = kleur;
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!