Finding corners of a matrix inside a matrix.

I have a matrix of size 50*80 which contains non-zero values in the center of matrix. for example-- I would like to extract the position of the corner elements in that matrix i.e position of (0,0,5,7) elements. Can anyone help me with the code?
A=[0 0 0 0 0 0 0 0 ;
0 0 0 2 4 5 0 0;
0 0 4 0 5 2 1 0;
0 0 5 8 7 6 7 0;
0 0 0 0 0 0 0 0;
end

 Respuesta aceptada

Birdman
Birdman el 26 de Feb. de 2018
[r,c]=find(A~=0);
upperLeft=A(min(r),min(c))
lowerLeft=A(max(r),min(c))
upperRight=A(min(r),max(c))
lowerRight=A(max(r),max(c))

6 comentarios

Swapnil Rane
Swapnil Rane el 26 de Feb. de 2018
Thank you for the solution but I want the position of the corners i.e row & column number of the corner elements.
Stephen23
Stephen23 el 26 de Feb. de 2018
@Swapnil Rane: that is what Birdman showed you: min(r),min(c), etc.
Swapnil Rane
Swapnil Rane el 26 de Feb. de 2018
I don't get it. The output should give me the row & column number i.e upper left=[2,3] lowerleft=[4,3] ...etc.
store it in a cell array maybe,
corners = {[min(r),min(c)],[min(r),max(c)];[max(r),min(c)],[max(r),max(c)]}
Stephen23
Stephen23 el 26 de Feb. de 2018
Editada: Stephen23 el 26 de Feb. de 2018
upperLeft = [min(r),min(c)]
etc.
@KL and @Stephen Cobeldick, both of the code works for me.
Thank you, I really appreciate it.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 26 de Feb. de 2018

Comentada:

el 26 de Feb. de 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by