I need help in splitting an array
Show older comments
The array I have-
A=[ 2 3 , 4 5 , 8 12 , 5 6 ]
The output I need-
C= [ 2 3 , 4 5 ]
D= [ 8 12 , 5 6 ]
6 Comments
the cyclist
on 26 Jan 2021
What is the size of A? Do you mean it is a 1x8, or a 4x2? Or something else?
Similarly are C and D supposed to be 1x4, or 2x2?
(It is unclear from your noncanonical use of the commas.)
Very simple:
A = [ 2 3 , 4 5 , 8 12 , 5 6 ]
B = A(1:4)
C = A(5:8)
Walter Roberson
on 26 Jan 2021
Stephen assumed that the rule is that the array is fixed length and that it is to be divided into two pieces of equal length. Those are reasonable assumptions.
My solution made different assumptions, that the input is to be divided into groups of 4 values and that as many different variables as needed should be used. Those might sound like odd assumptions at first, but we have learned over time that people who do not simply do the obvious array indexing usually have a broader problem in mind so I wrote for one of the more common broader problems.
If only there were some way for people who post questions to be more specific about what they want to do...
the cyclist
on 26 Jan 2021
lol ... if only
Sikder Meaghi
on 28 Jan 2021
Walter Roberson
on 28 Jan 2021
If only there were some way for people who post questions to be more specific about what they want to do...
Answers (1)
The following code is only valid for A up to 96 entries, after which it will run out of single-character variable names to assign the rows of 4 values into.
A=[ 2 3 , 4 5 , 8 12 , 5 6 ]
whos
q7ta90 = buffer(A,4);
for ilil1li = 1 : size(q7ta90, 2)
eval( char([66+ilil1li,61,mat2str(q7ta90(:,ilil1li)),46,39,59]) )
end
clear q7ta90 ilil1li
whos
C
D
Do you need the commas as part of the output? If so then the output cannot be numeric.
1 Comment
Sikder Meaghi
on 28 Jan 2021
Categories
Find more on Multidimensional Arrays 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!