我正在尝试读取一个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
答案 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的字符串数组,在字符串的外部没有'
个字符。