Read variable in .mat workspace

2 views (last 30 days)
Racheal Butt
Racheal Butt on 23 Mar 2022
Answered: Peter Perkins on 24 Mar 2022
Hi, I used the MATLAB mobile app to log sensor data (gyroscope, acceleration, etc), and it is saved as a .mat file. When I load it on MATLAB, it loads a workspace of variables.
The variables of the workspace of the .mat file is as follows:
I can access the acceleration timetable values with the code below:
matfile = "MobileSensorData/log3.mat"; %filename of the created .mat file from MATLAB Mobile
ld = load(matfile);
accel = [ld.Acceleration.X ld.Acceleration.Y ld.Acceleration.Z];
A snippet of the Acceleration timetable is as follows:
The issue I'm having is that I cannot access the variable t as I want to plot acceleration values against time
I tried
disp(ld.t)
to display the t values but comes with the error: Unrecognized field name "t".
Here's a snippet of the t variable:
Any help is greatly appreciated! I'm not too familiar with MATLAB, but am using it for my final year report.
Thank you in advance!
  2 Comments
Walter Roberson
Walter Roberson on 23 Mar 2022
disp(ld.Acceleration.t)
Stephen23
Stephen23 on 24 Mar 2022
@Racheal Butt: please upload a sample .mat file by clicking the paperclip button.
Note that you should NOT use the variable name MATFILE, as this is the name of a useful unbuilt function.

Sign in to comment.

Answers (1)

Peter Perkins
Peter Perkins on 24 Mar 2022
Rachael, the times are not part of the data, they are "metadata". But as your screenshot shows, the row times of the Acceleration timetable are named Timestamp. So, plot(Acceleration.Timestamp,Acceleration.X) or whatever.
Your screenshots contradict your code snippet, though. ld = load(matfile); puts everything under the additional layer of a scalar struct.
I have no idea what t is.

Community Treasure Hunt

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

Start Hunting!