Index exceeds matrix dimensions. (loading datas)

2 ビュー (過去 30 日間)
Lee Ariana
Lee Ariana 2011 年 11 月 3 日
Hello guys, Currently, i try to load multiple of data into MATLAB. The input.csv consists of 100 rows and 9 column integer value (positive and negative). I keep get this error for line one = strncmpi {C{10} , 'one' , 3}; Really appreciate if you guys can help me since i'm a beginner to MATLAB.
fid = fopen ('D:\MATLAB\R2010b\Japanese\input.csv');
C = textscan(fid,'%f%f%f%f%f%f%f%f%f','delimiter' , ',');
fclose(fid);
input = [C{1} C{2} C{3} C{4} C{5} C{6} C{7} C{8} C{9}];
one = strncmpi {C{10} , 'one' , 3};
two = strncmpi {C{10} , 'two' , 3};
three = strncmpi {C{10} , 'three' , 5};
four = strncmpi {C{10} , 'four' , 4};
five = strncmpi {C{10} , 'five' , 4};
six = strncmpi {C{10} , 'six' , 3};
seven = strncmpi {C{10} , 'seven' , 5};
eight = strncmpi {C{10} , 'eight' , 5};
nine = strncmpi {C{10} , 'nine' , 4};
ten = strncmpi {C{10} , 'ten' , 3};
target = double ([one two three four five six seven eight nine ten]);
input = input';
target = target';
Thank You Ariana

回答 (3 件)

Bengt-Arne
Bengt-Arne 2011 年 11 月 3 日
There is only 9 "%f%f%f%f%f%f%f%f%f" in C = textscan(fid,'%f%f%f%f%f%f%f%f%f','delimiter' , ','); fclose(fid);
Add one more %f=).
  2 件のコメント
Lee Ariana
Lee Ariana 2011 年 11 月 3 日
Thanks Bengt-Arne
Wasn't that '%f%f%f%f%f%f%f%f%f' represent 9 floating number in my input.csv?
i did add one more %f but the i've got another error
??? Undefined variable "strncmpi" or class "strncmpi".
Error in ==> newff at 13 one = strncmpi {C{10} , 'one' , 3};
Walter Roberson
Walter Roberson 2011 年 11 月 3 日
strncmpi(C{10},'one',3);
Notice the use of () rather than {}

サインインしてコメントする。


Fangjun Jiang
Fangjun Jiang 2011 年 11 月 3 日
You have 9 columns of data so I assume the resulting C is a 1x9 cell array. You don't have C{10}. That is what the error message is about.
  1 件のコメント
Lee Ariana
Lee Ariana 2011 年 11 月 3 日
Thanks Fangjun Jiang to identify the problem.

サインインしてコメントする。


Ora Zyto
Ora Zyto 2011 年 11 月 3 日
Ariana,
If your data import worked correctly, your cell C should be a 1x9 cell array, with each cell being a 100x1 double array.
Therefore, C{10} is not defined, since this would be cell #10 of C.
Also, strncmpi is a string comparison function. What are you trying to achieve with this functionality?
Finally, if you're working with comma-separated file, you may want to use CSVREAD instead: this will get you a matrix of numbers directly, without having to deal with the cell array.
Ora
  2 件のコメント
Lee Ariana
Lee Ariana 2011 年 11 月 3 日
Thanks Ora Zyto,
Actually i'm develop a language translator (signal processing) by using LPC and ANN. There is no problem by using ANN toolbox but i want to try the coding method.
I want to load 100 of wave file into my MATLAB project and each row consists of 9 column of value generate by LPC function.
So now, input is 100 x 9 cell array , C is 1 x9 cell array and fid is 3.
However, i'm having problem to load the data into my MATLAB environment. I'm using MATLAB vR2010b and a beginner.
Really appreciate your help.
Thanks
Ariana
Ora Zyto
Ora Zyto 2011 年 11 月 4 日
Ariana,
I don't understand where you are having issues. Your current workflow through:
input = [C{1} C{2} C{3} C{4} C{5} C{6} C{7} C{8} C{9}];
should generate a 100 x 9 matrix.
I was suggesting replacing all those lines (from fopen) by:
input = csvread('D:\MATLAB\R2010b\Japanese\input.csv');
If you are having other difficulties with your data, please explain exactly what the issue is.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by