Why do I get "Index exceeds matrix dimensions"?

1 Ansicht (letzte 30 Tage)
Blake
Blake am 19 Okt. 2017
Bearbeitet: Cedric am 19 Okt. 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

Akzeptierte Antwort

Cedric
Cedric am 19 Okt. 2017
Bearbeitet: Cedric am 19 Okt. 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

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by