Extract sensorvalues from string with units

1 view (last 30 days)
Hello,
I got some CSV files with sensorvalues in it. I used the command 'readtable' to get the data into a Matlab table. It is now a 1440x2 table. In the first variable of the table is a timestamp that works fine, when i try to plot it. But in the second variable i got this format: {'29.6 °C'}. I know when i want to plot the second variable, i have to seperate the value from the unit and convert the value into a number, because i think it is saved as a string. But i can't find a fitting command. Does anyone has an idea how to seperate the values and how to plot them?
Below is a part of the table so you can get a better understanding of my problem.
Var1 Var2
___________________ ___________
2022-06-17 00:00:00 {'28.1 °C'}
2022-06-17 00:01:00 {'28 °C' }
2022-06-17 00:02:00 {'28 °C' }
2022-06-17 00:03:00 {'28 °C' }
2022-06-17 00:04:00 {'28 °C' }

Accepted Answer

Star Strider
Star Strider on 28 Jun 2022
Edited: Star Strider on 28 Jun 2022
See the documentation section on Remove Prefix or Suffix Characters From Variables
type('Test 2020 06 28.csv') % Original File
2022-06-17 00:00:00, 28.1 °C 2022-06-17 00:01:00, 28 °C 2022-06-17 00:02:00, 28 °C 2022-06-17 00:03:00, 28 °C 2022-06-17 00:04:00, 28 °C
opts = detectImportOptions('Test 2020 06 28.csv');
opts = setvartype(opts, 'Var2','double');
opts = setvaropts(opts, 'Var2','Suffixes','°C');
T1 = readtable('Test 2020 06 28.csv', opts)
T1 = 5×2 table
Var1 Var2 ___________________ ____ 2022-06-17 00:00:00 28.1 2022-06-17 00:01:00 28 2022-06-17 00:02:00 28 2022-06-17 00:03:00 28 2022-06-17 00:04:00 28
figure
plot(T1{:,1}, T1{:,2})
grid
ylim([27 29]) % Change As Necessary For Your Data
That appears to have imported my test file correctly.
EDIT — (28 Jun 2022 at 17:52)
Forgot the plot initially. Added it now.
.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!