How to crop the initial values and the last values of a column

7 views (last 30 days)
Hello Matlab community, I am fairly new to Matlab and to be honest haven't used it in a while. My question is quite simple, I have a column from which I want to crop the first and the last 100 values, since they represent noise from the accelerometer.
colx = readtable(table,'Range','B100:B(end-100');
I have seen matlab has this new range function, which I am trying to use.
Thank you for your help

Accepted Answer

dpb
dpb on 28 Apr 2022
The 'Range' named input parameter to readtable refers to the range of an input Excel spreadsheet and is not dynamic in its definition--the end keyword is only valid inside an array/variable reference, one of which you do not yet have at this point.
Simply read the full dataset into the table (or a variable if it is only a single sensor acceleration data, the table may be overkill) and then save the sections you want with colon addressing.
This also has the advantage you could get somewhat more creative and select the start/end points from the characteristics of the signal itself, not just a hardcoded fixed number of elements.
data=readtable('yourinputfile');
NtoKill=100; % the magic number
data=data(NtoKill+1:end-NtoKill,:); % keep those in between the magic number at first, end
  2 Comments
Sarah DS
Sarah DS on 28 Apr 2022
Edited: Sarah DS on 28 Apr 2022
table = readtable(fileName,'Format','auto')
colx = table(101:end-100,:);
%coly = readtable(table,'Range' )
Sir, how would I specified the column here? Becase I have X, Y and Z which I have to separate for feature extraction.
dpb
dpb on 28 Apr 2022
Edited: dpb on 29 Apr 2022
You can't remove rows from one variable (column) in a table; it's a rectangular structure; you keep/delete all columns by rows of the table or none.
As for referencing the data in a table, you use the "dot" notation with the defined variable names; presuming something creative like X it's simply
data.X
And, use the table reference throughout, do NOT create additional variables that are simply needless copies of the same data. The latter is a very common habit/practice of the inexperienced in thinking they have to have another variable.
See (and read) the documentation on the table class; there's a full page on addressing modes to do anything you wish/desire effectively. <Access data in table>

Sign in to comment.

More Answers (1)

Matt J
Matt J on 28 Apr 2022
colx=colx(101:end-100,:)

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!