MATLAB Answers

Please how i can set the indexes of a vector or matrix in Matlab (exactly like the function set index in python)

2 views (last 30 days)
Inouss
Inouss on 10 Mar 2020
Commented: Luna on 1 Jun 2020
I have a csv file which has 2 columns and I want to put the first column as an index so that I can synchronize it with another file. Please Please if anyone has any idea how to do it on matlab

  5 Comments

Show 2 older comments
Luna
Luna on 10 Mar 2020
Can you share as attachment an example of both csv's and the columns you want to synchronize. You may use tables for that. Tables can easily be synchronized with time column or joined with key variables.
Inouss
Inouss on 10 Mar 2020
Yes Luna that's it , I join my csv files examples , I want to synchronized chan1 and chan2. The first column is a time columns
Luna
Luna on 10 Mar 2020
Is first column miliseconds? It goes like that:
1303132929
1303132930
1303132931
1303132932
Also how do you want to synchronize or resample these 2 tables? How do you want to fill your missing values? Do you have sampling rate?

Sign in to comment.

Accepted Answer

Luna
Luna on 10 Mar 2020
Hello,
I wrote some codes for you and I am going to share some links so that you can read in documentation and it will help.
Please read my comments below:
chan1_table = readtable('chan1.csv'); % read table 1. Your files must be in your work folder, otherwise use full path name.(Ex: 'C:/Users/.../chan1.csv')
chan2_table = readtable('chan2.csv'); % read table 2
% your both table have Var1 and Var2 variables. Var1 variables are your
% time column.
chan1_table.Var1 = milliseconds(chan1_table.Var1); % convert Var1 into milliseconds. You can use seconds, minutes or any other duration functions.
chan2_table.Var1 = milliseconds(chan2_table.Var1); % same as chan1_table.
%% convert both tables to time table according to their time column.
TT1 = table2timetable(chan1_table,'RowTimes','Var1');
TT2 = table2timetable(chan2_table,'RowTimes','Var1');
%% choose a time step
dt = milliseconds(1); % I choose 1 milliseconds because I don't know what it is. You can change as you wish.
% For example: dt = seconds(10)
% synchronize your table like below:
synched_table = synchronize(TT1,TT2,'regular','nearest','TimeStep',dt); % you can also use 'SampleRate',Fs. Fs must be in Hz(frequency)

More Answers (1)