J'essaie d'itérer sur une liste de chaînes dans MATLAB. Le problème est qu'à 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('%s\n',str);
end
??? Error using ==> fprintf
Function is not defined for 'cell' inputs.
Quelle est la manière correcte\élégante de résoudre ce problème?
Vous devez appeler le contenu de la cellule via str{1}
comme suit pour le corriger:
for str = {'aaa','bbb'}
fprintf('%s\n',str{1});
end
Voici un exemple plus sophistiqué sur l'impression du contenu des tableaux de cellules.
str={'aaa','bbb'};
fprintf('%s\n',str{:});
Pas besoin de boucles for
.
EDIT: Voir aussi: cellfun
À partir de R2016b, vous pouvez utiliser tableaux de chaînes :
for str = ["aaa" "bbb"]
fprintf('%s\n',str);
end