MATLAB: How to use textscan to read this .dat file? (Part 2)

MATLABtextscan

Hi, I have another similar but more complicated formatted data. I still have a trouble to write correct arguments of "textscan" to read it.
There are 8 data in []. I want each data can be in a column, respectively.
Please find the attached file for the data. Thank you!

Best Answer

Given the file formatting given in your last question, this will read the numeric data:
fmt = repmat('%f',1,8);
fmt = ['{%*q%f%*q[',fmt,']%*q[',fmt,']%*q[',fmt,']}'];
fid = fopen('temp.txt','rt');
A = cell2mat(textscan(fid,fmt,'Delimiter','":, ', 'MultipleDelimsAsOne',true));
fclose(fid);
Although strictly speaking the final group of numeric values should be strings, as they occur within double quotation marks. The quotation marks around numeric values makes parsing the data much more difficult and less robust.
The code was tested on this file: