extract non-zeros block from matrice

I have a matrix that contains several non-zeros blocks.The rest of the elements are zero. I want to put each of these blocks in a separate matrix. how can i do it?

답변 (1개)

jonas
jonas 2018년 2월 26일

0 개 추천

Not sure exactly what you want to do. The following creates a vector B containing all non-zeros of A
B=A(A~=0)
Do you want to extract several small matrices from a larger global matrix?

댓글 수: 5

khatere darvish
khatere darvish 2018년 2월 26일
dear jonas yes,i want to extract small matrices from a largger global matrix. for example i want to extract the small matrices are shown in the figure
khatere darvish
khatere darvish 2018년 2월 26일
jonas
jonas 2018년 2월 26일
편집: jonas 2018년 2월 26일
If you already know the indices of your blocks, then you can simply extract them by:
a1=A(row1:row2,col1:col2);
In your example: a1=A(1:2,1:3); a2=A(1:3,6:7);
Or do you need a more general function for extracting any rectangular-sized block?
EDIT: The image processing toolbox has a function called bwconncomp() that will find connecting non-zero values (BLOCKS) and output their indices. It should work as long as the blocks are completely separated by zeros.
Jan
Jan 2018년 2월 26일
Do you have the image processing toolbox?
khatere darvish
khatere darvish 2018년 2월 27일
yes i have it. thank you so much for your help

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Simulink Functions에 대해 자세히 알아보기

태그

질문:

2018년 2월 26일

댓글:

2018년 2월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by