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
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
2018년 2월 26일
khatere darvish
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
2018년 2월 26일
Do you have the image processing toolbox?
khatere darvish
2018년 2월 27일
카테고리
도움말 센터 및 File Exchange에서 Simulink Functions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
