Convert a matrix to { }
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Can anyone help me to convert a matrix that is for instance:
0 1 2
3 4 5
6 7 8
called symbols obtained from an image to something that is in the following form symbols= {'0' '1' '2' '3' '4' '5' '6' '7' '8'}.
0 commentaires
Réponses (3)
Jan
le 6 Oct 2013
Modifié(e) : Jan
le 6 Oct 2013
symbols = [0 1 2; ...
3 4 5; ...
6 7 8];
S = sprintf('%g*', symbols.');
S(end) = []; % Remove trailing *
C = regexp(S, '*', 'split');
Another simpler method:
C = cell(1, numel(symbols));
symbols = symbols.';
for iC = 1:numel(symbols)
C{iC} = sprintf('%g', symbols(iC));
end
I'm not convinced, that the conversion will really help to solve your problem.
0 commentaires
Jan
le 6 Oct 2013
Or:
symbols = [0 1 2; 3 4 5; 6 7 8];
C = num2cell(char('0' + symbols.'))
1 commentaire
Andrei Bobrov
le 6 Oct 2013
Modifié(e) : Andrei Bobrov
le 7 Oct 2013
A = [0 1 2
3 4 5
6 7 8];
cellstr(sprintf('%d',A')')'
other variant:
regexp(num2str(reshape(A.',1,[])),'\d*','match')
2 commentaires
Andrei Bobrov
le 7 Oct 2013
Modifié(e) : Andrei Bobrov
le 7 Oct 2013
Hi Jan, I agree with you and I suggest another option.
Voir également
Catégories
En savoir plus sur Characters and Strings 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!