Effacer les filtres
Effacer les filtres

Most Frequent letter in a Matrix. Help Please!

1 vue (au cours des 30 derniers jours)
João
João le 22 Déc 2013
Commenté : Image Analyst le 2 Jan 2014
Good night all,
I have a group of letters in a matrix, now I want to get a new matrix with the most frequent letter in groups of 4 rows.
So I have a matrix like this;
A
AB
AB
AB
B
B
B
B
(...)
and I want this;
AB
B
(...)
I'm reading the matrix with
[~,txt] = xlsread('Cópia de 2012_15min.xls','JAN','B25:B3000');
and I already tried
res = char( mode( double( reshape( txt, 4, [ ] ) ) ) )
but I'm getting an error
??? Error using ==> double Too many input arguments.
Error in ==> Untitled at 37 res = char( mode( double( txt, 4, [ ] ) ) )

Réponse acceptée

Image Analyst
Image Analyst le 2 Jan 2014
% Create sample data
letters = {...
'A'
'AB'
'AB'
'AB'
'B'
'B'
'B'
'B'}
% Now find unique letter pairs
uniqueLetters = unique(letters)
  5 commentaires
João
João le 2 Jan 2014
Modifié(e) : João le 2 Jan 2014
That's not making what I want maybe I was not clear. I have 2975 rows, in these rows I have letters like A B AB C, now I want to get a new matrix with the most frequent letters in groups of 4 rows.
So I have A A A A B B B C C C C D (...) and want a new matrix with A B C (...) so I will get a new matrix of letters with 744 rows
I'm now trying to use this code
[M,N] = size(txt); %# Matrix size
nSub = 744; %# Number of submatrices
novo = mat2cell(txt,diff(round(linspace(0,M,nSub+1))),N);
for i=1:744
[unique_strings, ~, string_map]=unique(novo{i})
most_common_string(i)=unique_strings(mode(string_map))
end
So I'm trying to split the matrix of 2975 rows into 744 new matrices of 4 rows, now I want to get the most frequent letter in each of the new matrices.
Image Analyst
Image Analyst le 2 Jan 2014
Sorry but I don't understand. You say you want "a new matrix of letters with 744 rows" and then you say want "744 new matrices of 4 rows" so I have no idea how many matrices you want (1 or 744) and how many rows (4 or 744) are supposed to be in it or them. And I don't know how you can find " the most frequent letter in each of the new matrices" if you don't count the letters (i.e. take the histogram like I did).
Hopefully someone else will understand you perfectly and supply you with a solution, because I can't.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by