在 MatLab 中使用文本文件导入数据时"Index exceeds matrix dimensions."错误



我正在尝试使用 importdata 导入数据,当我尝试解析返回的数据以创建矩阵时,我得到"索引超过矩阵维度"。 下面是我的代码...

traindata = importdata('textfile.txt');
%[A,delimiterOut,headerlinesOut] = importdata('textfile.txts');
disp(traindata); %everytime I run this code traindata increments by 1
X = traindata('   ',1:8); %this is where the error occurs, delimiter is 3 spaces
Y = traindata('   ',9);

以下是文本文件中数据的格式.txt...

,,,5.4,,,0.0,,,0.0,,,1.6,,,2.5,,,1.0,,,6.7,,,2.8,,,6.1
,,,4.2,,,1.1,,,3.6,,,3.9,,,1.8,,,9.3,,,3.3,,,2.4,,,7.6 数据

由空格分隔(我使用逗号尝试显示数据之间的空格)和每行末尾的换行符。 我已经打开了文本文件.txt在单词中并通过查看隐藏的格式字符进行验证。 我已经尝试了代码...

[A,delimiterOut,headerlinesOut] = importdata(inputfile);

尝试验证使用的分隔符,我收到错误"输出参数过多"。 如您所见,我正在尝试从导入的数据创建两个矩阵 (X,Y)。 我已经在堆栈溢出上看到了这个特定的错误,但没有关于导入数据的任何内容。 我也尝试过dlmread,但没有运气。 提前感谢任何帮助。

尝试使用文件>导入数据导入数据的建议,但我收到错误。.使用导入数据时出错输出参数过多。

"uiimport/runImportdata 中的错误(第 433 行) [datastruct, OTextDelimiter, OHeaderLines] = ...

uiimport/gatherFilePreviewData 中的错误(第 376 行) [datastruct, textDelimiter, headerLines]= runImportdata(fileAbsolutePath, type);

uiimport 中出错(第 194 行)[ctorPreviewText, ctorHeaderLines, ctorDelim] = ..."

我开始怀疑这是否是某种应用程序错误。 以下是一些细节。"R2012a (7.0.14.739) 64 位 (Win64)"。 文本文件的编码为 utf-8。 再次感谢您的帮助!

看起来从导入数据返回的数组是一个 1 元素数组。

train = importdata('textfile.txt');
fprintf('1st element in array %dn', traindata(1)); % prints a number a number that increase     each time I run this function ie 1,2,3,4...
fprintf('2nd element in array %dn', traindata(2)); % produces error, "Index exceeds matrix dimensions"

我经常发现使用 matlab 内置的 GUI 导入数据文件很有用,这有助于可视化数据的导入方式。 此处有一个选项可以生成复制导入期间选择的选项所需的代码,这将允许您确定如何动态导入数据。

只需转到:

文件>>>导入数据...

最新更新