如何读取文本文件的所有列,但Matlab中的最后一列除外

时间:2019-07-18 10:42:00

标签: matlab

我有一个.csv格式的文本文件,其中包含以下信息

  

2034.5,2047.0,2018.5,1994.75,2020.75,2053.75,09 / 01/2015   2023.75,2018.5,1994.75,2020.75,2053.75,2034.5,12 / 01/2015   2019.0,1994.75,2020.75,2053.75,2034.5,2023.75,13 / 01/2015   2010.25,2020.75,2053.75,2034.5,2023.75,2019.0,14 / 01/2015

但是,最后一列(日期)对我没有用,我想从读取文件后创建的最终矩阵中删除该列。我需要矩阵仅是数字的(第一列到第五列的值)。我需要对矩阵中的值进行归一化,以便日期值无用。

如何使用Matlab做到这一点?

2 个答案:

答案 0 :(得分:3)

使用textscan

fileID = fopen('q57092669_text.txt');
data = cell2mat(textscan(fileID,'%f%f%f%f%f%f%*s','Delimiter',','));
fclose(fileID);

使用readtable

myTable = readtable('q57092669_text.txt','Format','%f%f%f%f%f%f%*s');
data = table2array(myTable);

使用R2019a中引入的readmatrix

data = readmatrix('q57092669_text.txt','ExpectedNumVariables',6)

文本文件 q57092669_text.txt 的内容:

2034.5,2047.0,2018.5,1994.75,2020.75,2053.75,09/01/2015
2023.75,2018.5,1994.75,2020.75,2053.75,2034.5,12/01/2015
2019.0,1994.75,2020.75,2053.75,2034.5,2023.75,13/01/2015
2010.25,2020.75,2053.75,2034.5,2023.75,2019.0,14/01/2015

答案 1 :(得分:0)

如果您使用的是 textscan ,只需键入 doc textscan 似乎要忽略字段,您必须加星号“​​ *”。您应该看看here