Why do I get "Index exceeds matrix dimensions"?

Blake

Blake (view profile)

さんによって質問されました 2017 年 10 月 19 日

Cedric Wannaz (view profile)

さんによって 編集されました 2017 年 10 月 19 日
Cedric Wannaz

Cedric Wannaz (view profile)

さんの 回答が採用されました
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

0 件のコメント

サインイン to comment.

1 件の回答

2017 年 10 月 19 日

Cedric Wannaz (view profile)

2017 年 10 月 19 日
採用された回答

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

0 件のコメント

サインイン to comment.

Translated by