How do I set up a function to split up a randomly generated vector into an "if,else" statements to resize it in equal portions of 1, 2, or 3 rows

2 views (last 30 days)
array/vector = [1 2 3 4 5 6 7 8 9 10 11 12];
% but assuming I dont know the inputs to break up manually
% and as different possible answers I want...
output1 = [1,2,3,4,5,6,7,8,9,10,11,12]
output2 = [1,2,3,4,5,6]
[7,8,9,10,11,12]
output3 = [1,2,3,4]
[5,6,7,8]
[9,10,11,12]

Accepted Answer

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH on 12 Feb 2020
clc
array = [1 2 3 4 5 6 7 8 9 10 11 12];%1:12 do the same
s=1:numel(array);
fac = s(rem(numel(array),s)==0);
allpos=arrayfun(@(x) reshape(array,[],x)',fac,'UniformOutput',false);
allpos{:}

More Answers (0)

Categories

Find more on Signal Generation and Preprocessing in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by