Index exceeds matrix dimensions. (loading datas)

2 visualizaciones (últimos 30 días)
Lee Ariana
Lee Ariana el 3 de Nov. de 2011
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

Respuestas (3)

Bengt-Arne
Bengt-Arne el 3 de Nov. de 2011
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 comentarios
Lee Ariana
Lee Ariana el 3 de Nov. de 2011
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 el 3 de Nov. de 2011
strncmpi(C{10},'one',3);
Notice the use of () rather than {}

Iniciar sesión para comentar.


Fangjun Jiang
Fangjun Jiang el 3 de Nov. de 2011
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.

Ora Zyto
Ora Zyto el 3 de Nov. de 2011
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 comentarios
Lee Ariana
Lee Ariana el 3 de Nov. de 2011
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 el 4 de Nov. de 2011
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.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by