gpt4 book ai didi

excel - 将数据从 csv 文件读取到 MATLAB 时出错

转载 作者:行者123 更新时间:2023-12-04 20:46:49 41 4
gpt4 key购买 nike

我有以下示例数据

Date,Open,High,Low,Close,Volume,Adj Close
10/24/2011,181.51,183.39,180.62,182.25,5890600,182.25
10/21/2011,179.11,181.67,178.75,181.63,8054200,181.63
10/20/2011,178.13,179.24,176.17,177.25,7513800,177.25

我正在将 CSV 文件中的数据读入 MATLAB。
data = csvread('filename.csv','A1:G12542');

我收到以下错误。知道如何规避这个问题吗?
   ??? Error using ==> dlmread at 145
Header lines must be integer-valued.

Error in ==> csvread at 50
m=dlmread(filename, ',', r, c);

Error in ==> Q11 at 1
data1 = csvread('ibm.csv','A1:G12542');

最佳答案

三个问题:

1) 提供的样本数据不是 csv。 csv 代表逗号分隔的变量。您的示例数据似乎由制表符或空格分隔。 更新:我看到你已经编辑了你的样本,所以数据现在是 csv。我已经相应地编辑了我的解决方案。

2) 如果您希望使用 csvread 的行和列输入参数它们应该作为从零开始的整数值行和列参数输入,而不是“excel”类型的字符串。

3)从您提供的样本中,您似乎想要获取第一列中的日期。如果您想使用 csvread,这是一个问题。或 dlmread因为这两个函数都只能处理数字数据(请注意 10/24/2011 是一个字符串)。

因此,我将假设您向我们展示的内容代表您的文件。鉴于此,将其导入matlab的方式如下:

fid1 = fopen('YourFilePathHere', 'r');
D = textscan(fid1, '%s%f%f%f%f%f%f', 'Delimiter', ',', 'HeaderLines', 1);
fclose(fid1)
D = [datenum(D{1}, 'mm/dd/yyyy'), D{2}, D{3}, D{4}, D{5}, D{6}, D{7}];

在第一行,我打开文件进行阅读。在第二行中,我扫描数据。注意格式字符串 '%s%f%f%f%f%f%f' .这表示第一列是字符串格式 %s ,接下来的 6 列是浮点数(我们可以将其更改为其他数字类型,但目前浮点数是最简单的)。在第三行中,我关闭了文件。在最后一行中,我将日期字符串转换为 matlab 数字日期格式,然后将其与其余数据组合成一个数字矩阵,以供分析。

关于excel - 将数据从 csv 文件读取到 MATLAB 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115569/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com