Подтвердить что ты не робот

Итерирование по списку строк в MATLAB

Я пытаюсь перебрать список строк в MATLAB. Проблема в том, что внутри цикла 'for' мой итератор считается "ячейкой", а не строкой.

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

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

Каков правильный\элегантный способ исправить это?

4b9b3361

Ответ 1

Вы должны вызвать содержимое ячейки через str{1} следующим образом, чтобы сделать ее правильной:

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

Здесь более сложный пример при печати содержимого массивов ячеек.

Ответ 2

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

Нет необходимости в циклах for.

EDIT: См. Также: cellfun