迭代MATLAB中的字符串列表

wan*_*ear 27 string matlab loops

我正在尝试迭代MATLAB中的字符串列表.问题是,在'for'循环中,我的迭代器被认为是'cell'而不是字符串.

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

??? Error using ==> fprintf
Function is not defined for 'cell' inputs.
Run Code Online (Sandbox Code Playgroud)

解决这个问题的正确\优雅方法是什么?

pet*_*hor 30

您应该str{1}按如下方式调用单元格的内容以使其正确:

for str = {'aaa','bbb'}
  fprintf('%s\n',str{1});
end
Run Code Online (Sandbox Code Playgroud)

这是一个关于打印单元格数组内容的更复杂的例子.

  • `char(str)`也可以工作,如果循环被更改,则不会失败,因此str作为char数组而不是单元格进入 (2认同)

Kit*_*YMG 6

str={'aaa','bbb'};
fprintf('%s\n',str{:});
Run Code Online (Sandbox Code Playgroud)

不需要for循环.

编辑:另见: cellfun