Numeric data becomes zero after conversion from Table

3 views (last 30 days)
I am trying to extract data collected via IMU using the readtable function like this:
%Extracting data from the LGW folder
[filename, pathname] = uigetfile('*.dat');
T1 = readtable(strcat(pathname,filename),"ReadVariableNames",true);
T1 = T1(:,1:end-2);
[filename, pathname] = uigetfile('*.dat');
T2 = readtable(strcat(pathname,filename));
T2 = T2(:,1:end-2);
[filename, pathname] = uigetfile('*.dat');
T3 = readtable(strcat(pathname,filename));
T3 = T3(:,1:end-2);
[filename, pathname] = uigetfile('*.dat');
T4 = readtable(strcat(pathname,filename));
T4 = T4(:,1:end-2);
T4(:,[51 52]) = [];
[filename, pathname] = uigetfile('*.dat');
T5 = readtable(strcat(pathname,filename));
T5 = T5(:,1:end-2);
T5(:,[51 52]) = [];
[filename, pathname] = uigetfile('*.dat');
T6 = readtable(strcat(pathname,filename));
T6 = T6(:,1:end-2);
T6(:,[51 52]) = []
However, when converting it to numeric data like this:
nums = [LGW_Pelvis{2,:}]
The data becomes zero except for the all the row under the first column.
I have tried changing the format into cell and timetable but when getting the numeric data format from these data types: they becomes zero.
  8 Comments
Walter Roberson
Walter Roberson on 26 Jan 2023
Okay, please show us
unique(varfun(@class, data_LGW(1,61:70), 'OutputFormat', 'cell'))
Rainer Rodrigues
Rainer Rodrigues on 26 Jan 2023
ans = 1×1 cell array
{'double'}
This is the given output.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 26 Jan 2023
I predict that you have
format short
in effect, and that what is being displayed is not really 0 but is instead something of the form
x = [0,10.^(-5:5)]
x = 1×12
1.0e+05 * 0 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0010 0.0100 0.1000 1.0000
Notice the initial "1.0e+5 *" before the line, and notice the "0.0000" entries. The "1.0e+5 *" indicates that you need to mentally multiply all of the displayed outputs by 1.0e+5. The 0.0000 entries indicate something that is not exactly zero, but instead is smaller than 0.0001 times the value shown in the first line. Notice the exact 0 at the begining is shown without the ".0000" .
I predict that if you were to
format long g
x
x = 1×12
1.0e+00 * 0 1e-05 0.0001 0.001 0.01 0.1 1 10 100 1000 10000 100000
then you would see the actual values.

More Answers (0)

Categories

Find more on Tables in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!