Itération sur une liste de chaînes de caractères dans MATLAB

j'essaye d'itérer une liste de chaînes dans MATLAB. Le problème est que, à l'intérieur de la boucle 'for', mon itérateur est considéré comme une 'cellule' plutôt qu'une chaîne.

for str = {'aaa','bbb'}
  fprintf('%sn',str);
end

??? Error using ==> fprintf
Function is not defined for 'cell' inputs.

Quelle est la bonne façonelegant de corriger cela?

20
demandé sur Amro 2012-05-21 18:52:43

2 réponses

vous devez appeler le contenu de la cellule via str{1} comme suit pour le rendre correct:

for str = {'aaa','bbb'}
  fprintf('%s\n',str{1});
end

Voici un exemple plus sophistiqué sur l'impression du contenu des tableaux de cellules.

25
répondu petrichor 2012-05-21 14:57:06
str={'aaa','bbb'};
fprintf('%s\n',str{:});

Pas besoin de for boucles.

modifier: Voir aussi: cellfun

6
répondu KitsuneYMG 2012-05-21 15:01:20