Labeling the columns in an array

35 vues (au cours des 30 derniers jours)
FW
FW le 12 Juil 2019
Commenté : Peter Jarosi le 12 Juil 2019
If we import a .csv or Excel file using readtable, and then convert the table to an array as the following:
Data=table2array(readtable('Filename.csv'));
We get an output like the following. This syntax process removed all the original labels of each column. Is it possible to label the columns, such as Serial number, Time, Signal 1, Signal 2?
Although one can read and separately isolate the columns, does Matlab allow retaining the labels? Thanks
DATA.jpg
  1 commentaire
John Doe
John Doe le 12 Juil 2019
Unless you are doing an operation that does not support table data sets, leave your data as a table.
Alternatively, save all your variables to cell array using:
varNames = t.Properties.VariableNames;
Then when you want to output your data can recreate the table afterwards.
Don't split your data in to individual variables.

Connectez-vous pour commenter.

Réponse acceptée

Peter Jarosi
Peter Jarosi le 12 Juil 2019
Modifié(e) : Peter Jarosi le 12 Juil 2019
Do not convert your table into an array! Just use table object!
Data=readtable('Filename.csv');
Later, if you want to refer it as a matrix you can use the following syntax:
Data{:,:}
If you want to refer your columns as column vectors use:
Data{:,{'Serial number'}}
Data{:,{'Time'}}
etc.
If you want your signals in a n by two matrix:
Data{:,{'Signal 1','Signal 2'}}
  2 commentaires
FW
FW le 12 Juil 2019
Thanks all, I want to apply moving average smoothing on column 3. Couple of other operations don't work in the table after smoothing. Currently, I read the columns from the array. May be it would be worthwhile to keep the table for reference and then use the array for operations.
% Hamming filter
L=13; % size of Hamming windows
H=hamming(L);
Signal1=Data(1:382, 3); data in column in 3
Signal1_Hamming = conv(Signal1, H./sum(H), 'same') ;
Peter Jarosi
Peter Jarosi le 12 Juil 2019
You're welcome!
You can still use your data in a table format, just change your 3rd line to:
Signal1=Data{1:382, {'Signal 1'}}; % data in column in 3

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Tables dans Help Center et File Exchange

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by