Extract multiple matrices from an array by excluding specified numbers.
2 views (last 30 days)
Show older comments
Let's say i got an array like [0 0 0 3 5 7 2 1 4 0 0 0 4 7 8 5 2 4] .
I want to build matrices excluding all zeroes and get 3x2 matrices with remaining values like
A = 3 2 & B= 4 5
5 1 7 2
7 4 8 4
How can this be done? Thanks.
0 Comments
Accepted Answer
David Fletcher
on 22 May 2021
Edited: David Fletcher
on 22 May 2021
Will do the job in this case, but is not massively robust. Would need additional code to enforce the number of elements in the vector being reshaped if there is a chance it will not be a multiple of (six in this case)
vec=[0 0 0 3 5 7 2 1 4 0 0 0 4 7 8 5 2 4];
%Remove zeros
vec(vec==0)=[];
index=1;
for iter=1:6:numel(vec)
%Reshape remaining vector into a 3x2 and store
mat(:,:,index)=reshape(vec(iter:iter+5),[],2);
index=index+1;
end
mat(:,:,1)
mat(:,:,2)
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!