Ответ 1
Вы должны вызвать содержимое ячейки через str{1}
следующим образом, чтобы сделать ее правильной:
for str = {'aaa','bbb'}
fprintf('%s\n',str{1});
end
Здесь более сложный пример при печати содержимого массивов ячеек.
Я пытаюсь перебрать список строк в MATLAB. Проблема в том, что внутри цикла 'for' мой итератор считается "ячейкой", а не строкой.
for str = {'aaa','bbb'}
fprintf('%s\n',str);
end
??? Error using ==> fprintf
Function is not defined for 'cell' inputs.
Каков правильный\элегантный способ исправить это?
Вы должны вызвать содержимое ячейки через str{1}
следующим образом, чтобы сделать ее правильной:
for str = {'aaa','bbb'}
fprintf('%s\n',str{1});
end
Здесь более сложный пример при печати содержимого массивов ячеек.
str={'aaa','bbb'};
fprintf('%s\n',str{:});
Нет необходимости в циклах for
.
EDIT:
См. Также: cellfun