extract non-zeros block from matrice
Ältere Kommentare anzeigen
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?
Antworten (1)
jonas
am 26 Feb. 2018
0 Stimmen
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 Kommentare
khatere darvish
am 26 Feb. 2018
khatere darvish
am 26 Feb. 2018
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
am 26 Feb. 2018
Do you have the image processing toolbox?
khatere darvish
am 27 Feb. 2018
Kategorien
Mehr zu Simulink Functions finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
