imwrite - 必须提供文件名

时间:2015-12-24 02:18:15

标签: matlab syntax-error

我有以下imwrite声明:

imwrite(img, strcat(thisdir,'_',num2str(j),'_LABEL_',categoryClassifier.Labels(labelIdx),'.jpg'));

其中categoryClassifier.Labels(labelIdx)返回string,而thisdir也是string返回目录名称。但是,我收到以下错误:

Error using imwrite>parse_inputs (line 510)
A filename must be supplied.

Error in imwrite (line 418)
   [data, map, filename, format, paramPairs] = parse_inputs(varargin{:});

strcat的部分是否被视为文件名?

感谢。

1 个答案:

答案 0 :(得分:1)

这有点像黑暗中的镜头,但我怀疑你想要categoryClassifier.Labels{labelIdx}而不是categoryClassifier.Labels(labelIdx)(区别在于大括号)。

假设categoryClassifier.Labels是字符串的单元格数组,花括号为您提供该单元格的内容(这是您想要的),而括号为您提供1x1单元格数组(看起来很像MATLAB命令窗口中的一个字符串)。另请注意,strcat非常乐意处理字符串的单元格数组,所以它不会抱怨,但imwrite会因为它的参数都不是字符串而烦恼。