About Table Comparing in matlab code
1 view (last 30 days)
Cris LaPierre on 8 Oct 2020
Edited: Cris LaPierre on 8 Oct 2020
I would use the discretize function, using your comp data to set the edges (col 1) as well as the new values (col 2).
Here's some code. Be sure to read the linked documentation page to understand how discretize works. Most of my code just ensures the formatting is preserved when loading the data.
% Read comparison data as a table (Sheet 1)
comp = readtable('Data.xlsx','Sheet',1);
% Read test data as a timetable (Sheet 2)
opts = detectImportOptions("Data.xlsx","Sheet",2);
opts.VariableNames = ["Time", "Voltage"];
opts = setvartype(opts,["duration","double"]);
opts = setvaropts(opts,"Time","InputFormat",'hh:mm:ss.SSS');
test = readtimetable('Data.xlsx',opts,"Sheet",2);
% Bin edges must be in ascending order for discretize
comp = sortrows(comp,"OCV","ascend");
% Need one more edge than values, so added 0, since your values appear to apply to the range below it
test.Percent = discretize(test.Voltage,[0;comp.OCV],comp.SOC)
More Answers (1)
Ayush Gupta on 8 Oct 2020
The data in excel file can be read using the readmatrix function in MATLAB. The Test_data in the second sheet can be given values accordingly defined in the first sheet using the splitapply function of MATLAB. To read about the documentation of readmatrix, look here. To see some examples on how to use splitapply function, click here.