MATLAB: Converting cell data to a matrix

importdataMATLAB

I have one column of cell data in Matlab that reads the following:
11:32:44.69 InAir 0.00 Steady 0.00 -1.06 0.00 1.00
11:32:44.694 InAir 0.00 Steady 0.00 -0.34 0.00 0.93
11:32:44.694 InAir 0.00 Steady 0.00 -0.58 0.00 1.01
Etc.
The actual code goes on for thousands of rows. My following code reads this data in from a file: X= importdata('file1.txt'); A=(1:1:7); X(A,:)=[]; %gets rid of the first 7 lines of headers
How do I convert this one column of cell data into multiple columns with time, “inAir”, 0.00, “steady”, etc?

Best Answer

  • regexp(X, ' ', 'split')
    I would suggest, though, that instead you use
    fid = fopen('file1.txt','rt');
    X = textscan(fid,'%s%s%f%s%f%f%f%f','HeaderLines',7);
    close(fid);
    Then, X{1} will be the first column, X{2} will be the second, and so on.