簡體   English   中英

在MatLab中使用導入數據和文本文件的錯誤“索引超出矩陣尺寸。”

[英]Error “Index exceeds matrix dimensions.” in MatLab using importdata with a text file

我正在嘗試使用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導入數據的建議,但我收到錯誤。使用importdata的錯誤輸出參數過多。

“ 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" 

我經常發現使用matlab的內置GUI導入數據文件很有用,這可以幫助可視化如何導入數據。 這里有一個選項可以生成復制在導入期間選擇的選項所需的代碼,這將使您了解如何動態導入數據。

只需轉到:

文件>>>導入數據...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM