首页 > 解决方案 > 如何读取文本文件的所有列,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 做到这一点?

标签: matlab

解决方案


使用文本扫描

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

推荐阅读