Convert Columns Arrays to numeric
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Stefan Azzopardi
il 15 Gen 2020
Risposto: Steven Lord
il 15 Gen 2020
Hi,
I have a timetable with various data columns - I have imported these from an excel file. I need to make an addition to the all rows of colums and to add a column with the result. I think that my arrays are currently not numeric type and therefor I can not add them. Is there a way that I can convert data of columns 1-7 to numeric and make a summation? Or how can I know the data type of the columns?
1 Commento
Andrei Bobrov
il 15 Gen 2020
Please attach here your variable 'combine' as mat-file
>> save('yourdata.mat','combine') % run in yur Command Window
And attach here file yourdata.mat .
Risposta accettata
Andrei Bobrov
il 15 Gen 2020
Modificato: Andrei Bobrov
il 15 Gen 2020
...how can I know the data type of the columns?
varfun(@class,combine)
solution:
load('data.mat')
combine = [combine,rowfun(@funsum,combine,'OutputVariableName','SUM_ALL_kW')];
function out = funsum(varargin)
out = sum([varargin{:}],2);
end
or
combine.SUM_ALL_kW = sum(combine{:,:},2) ;
2 Commenti
Andrei Bobrov
il 15 Gen 2020
Comment by Stefan Azzopardi:
Andrei, Thanks for your help and it worked perfectly. This resulted in a new column with the sum of the other columns. Thank you once again for your help :) :)
Più risposte (2)
WalterWhite
il 15 Gen 2020
t = datetime('now')
nn = datenum(t)+10;
f= datetime(nn,'ConvertFrom','datenum')
>> reading
t =
datetime
15-Jan-2020 09:52:43
f =
datetime
25-Jan-2020 09:52:43
did you mean something like this?
Steven Lord
il 15 Gen 2020
Using the example from the timetable help text:
MeasurementTime = datetime({'2015-12-18 08:03:05';'2015-12-18 10:03:17';'2015-12-18 12:03:13'});
Temp = [37.3;39.1;42.3];
Pressure = [30.1;30.03;29.9];
WindSpeed = [13.4;6.5;7.3];
WindDirection = categorical({'NW';'N';'NW'});
TT = timetable(MeasurementTime,Temp,Pressure,WindSpeed,WindDirection)
Let's say that I wanted (for whatever reason) to add the temperature, pressure, and wind speed. I can extract that data from TT into a numeric array in two different ways:
A1 = TT{:, ["Temp", "Pressure", "WindSpeed"]} % Using variable names
A2 = TT{:, 1:3} % Using variable numbers
Now sum and put back into TT.
TT.combinedData = sum(A1, 2)
If all your data could be concatenated into an array with a uniform type, you could extract the data even easier. But this technique won't work for TT, as you can't combine a numeric variable like TT.Temp and a categorical variable like TT.WindDirection into one array.
TT.Variables
0 Commenti
Vedere anche
Categorie
Scopri di più su Spreadsheets in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!