0

我正在尝试使用 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);

下面是 textfile.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

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

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

尝试验证使用的分隔符,我收到错误“输出参数太多”。如您所见,我正在尝试从导入的数据创建两个矩阵 (X,Y)。我在stackoverflow上看到了这个特定的错误,但没有关于importdata。我也尝试过 dlmread 并且没有运气。提前感谢您的帮助。

尝试使用 file->import data 导入数据的建议,但我收到错误.. Error using importdata Too many output arguments。

“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。再次感谢您的帮助!

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

train = importdata('textfile.txt');
fprintf('1st element in array %d\n', 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 %d\n', traindata(2)); % produces error, "Index exceeds matrix dimensions"
4

1 回答 1

0

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

只需前往:

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

于 2013-09-08T19:55:10.600 回答