# How can simply divide a linear array into 32 equal parts?

67 views (last 30 days)
Zara Khan on 6 Mar 2019
Commented: Walter Roberson on 7 Mar 2019
I want to divide a linear array of consequtives 0's and 1's into 32 equal parts. Then I want to store number of occurrence of 1's of each parts and size of each parts. I am working with 1000 number of images. For each image I am getting 8 different length linear array.
Zara Khan on 6 Mar 2019
I am always getting 1D arrays of different lengths like 1×31, 1×62, 1×93, 1×124,1×155,1×185,1×216,1+247

KSSV on 6 Mar 2019
A = rand(1,247) ; % you data
a = length(A) ;
n = 32 ;
b = a + (n - rem(a,n)) ; % Get number divisible by 32
B = zeros(1,b) ;
B(1:a) = A ; % This pad extra zeros
iwant = reshape(B,b/n,[]) ;
Walter Roberson on 7 Mar 2019
The anonymous function
FirstN = @(v, N) v(1:N);
is nearly equivalent to having created a function
function result = FirstN(v, N)
result = v(1:N);
end
That is, take an array as input in the first argument, and take a length in the second argument, and return the first that-many elements of the array.
You can pad an array to a consistent size, say N, by taking an array, appending N zeros to it (so now it is always at least N entries long), and then taking the first N values of the result.