Why do I get "Index exceeds matrix dimensions"?

1 visualización (últimos 30 días)
Blake
Blake el 19 de Oct. de 2017
Editada: Cedric el 19 de Oct. de 2017
I'm trying to create a matrix of two letter combinations from a string x. A(1,1) = # of aa's, A(1,2) = # of ab's etc. to A(26,26) = # of zz's. The text is all lower case and I thought I solved it, but I keep getting this error message. Ideas as to why? How would I fix / avoid this in the future?
alphabet = 'a':'z';
A = zeros(26);
for j = alphabet
for i = alphabet
y = strcat(alphabet(i),alphabet(j));
A(i,j) = length(strfind(x,y));
end
end

Respuesta aceptada

Cedric
Cedric el 19 de Oct. de 2017
Editada: Cedric el 19 de Oct. de 2017
Numeric arrays cannot store arrays of two characters. Try with a cell array. Also, don't index arrays with characters but with numeric indices
alphabet = 'a' : 'z' ;
A = cell( 26, 26 ) ;
for j = 1 : length( alphabet )
for i = 1 : length( alphabet )
A{i,j} = [alphabet(i),alphabet(j)] ; % Concatenation of two letters.
end
end

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices 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