How to organize a new matrix like matrix B ?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
If I have matrix A that contains 4 columns. like this
A = [7210 01/12/2016 00:15:00 0 0.5502;
7210 01/12/2016 00:15:00 2 0.4903;
7210 01/12/2016 00:30:00 0 0.5487;
7210 01/12/2016 00:30:00 2 0.4914 ]
First column is a customer id and second column contains date time data.
I try to construct output matrix B to get the result follow this example
B = [7210 01/12/2016 00:15:00 0.5502 0.4903;
7210 01/12/2016 00:30:00 0.5487 0.4914]
How can create program to get a result like matrix B ?
Thanks in advance.
0 Kommentare
Antworten (2)
Akira Agata
am 20 Jan. 2018
Assuming your data A is stored in table format, I believe one possible solution would be like this.
% Your data stored in table format
ID = [7210; 7210; 7210; 7210];
Time = [...
datetime('01/12/2016 00:15:00','InputFormat','dd/MM/yyyy HH:mm:ss');...
datetime('01/12/2016 00:15:00','InputFormat','dd/MM/yyyy HH:mm:ss');...
datetime('01/12/2016 00:30:00','InputFormat','dd/MM/yyyy HH:mm:ss');...
datetime('01/12/2016 00:30:00','InputFormat','dd/MM/yyyy HH:mm:ss')];
Flag = [0;2;0;2];
Value = [0.5502;0.4903;0.5487;0.4914];
A = table(ID,Time,Flag,Value);
% Create the result B
A1 = A(A.Flag == 0,{'ID','Time','Value'});
A2 = A(A.Flag == 2,{'ID','Time','Value'});
B = innerjoin(A1,A2,'Keys',{'ID','Time'});
3 Kommentare
Akira Agata
am 20 Jan. 2018
What is your MATLAB version? At least on the latest one (R2017b), this code works.
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!