无法在MATLAB中导入csv数据

时间:2019-04-11 15:14:39

标签: matlab csv variable-types

我正在尝试读取一个csv文件,该文件包含有关EUR / USD汇率的每日数据,包括指定年,月和日的日期。问题在于,使用readtable(filename)在所有表条目周围都加上单引号,因此完全阻碍了我使用数据。

检测导入选项:

opts = detectImportOptions('EUR_USD Historische Data.csv');

读入数据:

EUR_USD = readtable('EUR_USD Historische Data.csv');

减去日期并转换为datetime变量:

dt = EUR_USD(:,1);
dates = datetime(dt,'InputFormat','yyyyMMdd'); 
% Does not work because of single quotes

我能够减去收盘价并使之可行,但是我不确定这是否是一种优雅的方式:

closing_prices = str2double(table2array(EUR_USD(:,5)));

最终目标是使数据可行。我需要将两列的日期时间变量进行比较,如果两列之间的日期不匹配,则需要删除该条目,以便最后两列都匹配。

这是带有日期的向量: Dates vector wrong

我需要它看起来像这样: Dates vector correct

1 个答案:

答案 0 :(得分:0)

我认为您需要做的就是删除'字符,以便将数据正确读取到datetime中。看下面的例子:

%stringz is the same as dt here: just the string data
T = table;
T.stringz = string(['''string1'''; '''string2'''; '''string3''']);
stringz = T.stringz;

%Run the for loop to remove the ' chars
for i = 1:length(stringz)
    strval = char(stringz(i,1));
    strval = strval(2:end-1);
    strmat(i,1) = string(strval);
end

%Then load data into datetime after this for loop
dates = datetime(strmat,'InputFormat','yyyyMMdd'); 

strmat返回一个3x1的字符串数组,在字符串的外部没有'个字符。