Reading text file using fprintf and textscan

6 次查看(过去 30 天)
Hello!!
I am reading a text file and trying to extract array from the file. I used script as below.
fid=fopen('test.txt');
B_a=textscan(fid,'%f\t%f\t%f\t%f\t%f\r\n','HeaderLines', 1);
fclose(fid);
The goal is to acheive a matrix as below.
B_a=[0.050000,6999.282209,-791.957055,6644.515337,2338.276074;
0.150000,8999.282209,-751.957055,6844.515337,2339.276074]
But as I did I only get an array contains only the first line of text file.
Can anyone please help me?

采纳的回答

Guillaume
Guillaume 2019-4-5
You could continue to use textscan, you don't specify line endings and separators in the format string:
fid = fopen('test.txt');
B_a=textscan(fid,'%f%f%f%f%f','HeaderLines', 1);
fclose(fid);
B_a = cell2mat(B_a);
You could also use readtable to read as a table, then convert to a matrix. If the header of the your file made more sense, readtable could have used that to name the variables.
B_a = table2array(readtable('test.txt'));
If on the newly released R2019a, the simplest is to use readmatrix:
B_a = readmatrix('test.txt'); %all done. It figures out the number of headerlines on its own.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Import and Export 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by