Please how i can set the indexes of a vector or matrix in Matlab (exactly like the function set index in python)
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Luna
2020-3-10
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)
更多回答(1 个)
David Hill
2020-3-10
B=zeros(max(A(:,1)),1);
B(A(:,1))=A(:,2);
If you don't like all the zeros, then you could use a sparse matrix.
B=sparse(A(:,1),1,A(:,2));
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!