How to create the contour (closed surface) utilizing matlab functions or loopings using the given Matrix under certain conditions
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
6 comentarios
Guillaume
el 15 de Ag. de 2019
Ok, that makes it a bit clearer, I still don't understand why you say that in:
[ 0 0 0 0 0 3 0]
you say that the row has a closing 3 but not starting 3. Why couldn't you say it has a starting 3 but no closing 3?
So, it looks like you want each row and column to have either no 3 at all, or at least two 3s. So for the rows/columns with just one 3, any preference where the missing 3 should be added?
Respuestas (1)
Dheeraj Singh
el 19 de Ag. de 2019
I understand that you want to fill the matrix such that the boundaries are filled circularly.
And for starting 3, it should be before the middle row or column and vice-versa for the closing.
So, for say matrix:
[ 0 0 0 3 3 0 0 0
0 0 3 0 0 0 3 0
0 3 0 0 0 0 3 0
3 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0
0 3 0 0 0 0 3 0
0 0 0 0 0 0 3 0
0 0 0 0 0 0 0 0
0 0 3 3 0 0 0 0 ]
You would like the output to be something like this:
[ 0 0 0 3 3 0 0 0
0 0 3 0 0 3 3 0
0 3 0 0 0 0 3 0
3 0 0 0 0 0 0 3
3 0 0 0 0 0 0 3
3 0 0 0 0 0 0 3
0 3 0 0 0 0 3 0
0 3 0 0 0 0 3 0
0 3 0 0 0 0 3 0
0 0 3 3 3 3 0 0]
You can do it by dividing the whole matrix into 4 quadrants similar to the circle.
The following code below implements it for when the number of columns is greater than number of rows.
%your matrix
a=zeros(8,10);
N=a(1,:);
M=a(:,1);
m1=N/2;
e1=m1+1;
m2=M/2;
e2=m2+1;
%for first quadrant;
j=1;
for i=m2:-1:1
if a(j,i)~=3
a(j,i)=3;
end
j=j+1;
j=min([j,m1]);
end
%for 2nd quadrant
j=e1;
for i=1:m2
if a(j,i)~=3
a(j,i)=3;
end
j=j+1;
j=min([j,N]);
end
%for 3rd quadrant
j=N;
for i=e2:M
if a(j,i)~=3
a(j,i)=3;
end
j=j-1;
j=max([j,e1]);
end
%for 4th quadrant
j=m1;
for i=M:-1:e2
if a(j,i)~=3
a(j,i)=3;
end
j=j-1;
j=max([j,1]);
end
You can the modify the above code for the case where no of rows are more than columns.
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!