How to make a single array of values from multiple different arrays one after the other

5 views (last 30 days)
Hello!
I have one array, A, with serial dates from a range of dates and the same time for each date, so like for every day of one month in one year at 1:30 AM. I have another array, B, with serial dates of that same date range from that same month and year at a different time but all at 4:30 PM instead. I have another array C, with the same date range but at 11:30 pm. I want to combine all these arrays into one so that they are one large array with the dates and times in order which would be one value from A then another from B, then the next from C, then the next from A, and so on like A B C A B C A B C...
Sorry if this was unclear, thank you!
  2 Comments
Claire
Claire on 16 Feb 2021
Edited: Claire on 18 Feb 2021
Here is a sample of my arrays:
A B C
736055.063 736055.521 736055.896
736056.063 736056.521 736056.896
736057.063 736057.521 736057.896
I would like to combine them into one array that would look something like this:
Full array (serial date from A, followed by serial date from B, followed by serial date from C, on repeat until it is the length of the 3 arrays combined)
736055.063 A
736055.521 B
736055.896 C
736056.063 A
736056.521 B
736056.896 C
736057.063 A
736057.521 B
736057.896 C
edit: example of desired, full array was incorrect, now fixed!

Sign in to comment.

Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 17 Feb 2021
You canot combine numeric and strings together in an Array, You may do the same using cell array. Another way using table
A=[736055.063,736056.063,736057.063];
B=[736055.521,736056.521,736057.521];
C=[736055.896,736056.896,736057.896];
data=[A',B',C'];
dat=data(:);
cate=['A','B','C']';
r=length(dat)/length(cate);
col2=repmat(cate,[r,1]);
t=table(dat,col2)
Result:
t =
9×2 table
dat col2
__________ ____
736055.063 A
736056.063 B
736057.063 C
736055.521 A
736056.521 B
736057.521 C
736055.896 A
736056.896 B
736057.896 C
  2 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 18 Feb 2021
Edited: KALYAN ACHARJYA on 18 Feb 2021
Here:
A=[736055.063,736056.063,736057.063];
B=[736055.521,736056.521,736057.521];
C=[736055.896,736056.896,736057.896];
data=reshape([A;B;C],size(A,1),[]);
dat=data(:);
cate=['A','B','C']';
r=length(dat)/length(cate);
col2=repmat(cate,[r,1]);
t=table(dat,col2)
Result:
t =
9×2 table
dat col2
__________ ____
736055.063 A
736055.521 B
736055.896 C
736056.063 A
736056.521 B
736056.896 C
736057.063 A
736057.521 B
736057.896 C

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!