使用imread和csvwrite从图像集创建csv文件时出现Matlab错误

时间:2018-06-04 10:02:26

标签: matlab syntax-error

我想将一组图像转换为csv文件。我正在使用Matlab,我需要每行对应一个图像。我尝试使用以下代码

I=imread(c{n}); 

csvwrite('C:\Users\HP\Desktop\test.csv',I(:).','-append'); % c{n} contains the name of image files to be taken

但是我收到以下错误

  

使用dlmwrite时出错(第112行)    无效的属性标记:,。

     

csvwrite出错(第42行)    dlmwrite(filename, m, ',', r, c);

     

无标题错误(第7行)

     

csvwrite('C:\Users\HP\Desktop\test.csv',I(:).','-append');

但如果我尝试在没有' -append'没有错误。 如何更改代码,使其一次性获取所有图像,并通过单次执行代码生成csv文件。

1 个答案:

答案 0 :(得分:0)

csvwrite用于编写逗号分隔值,因此添加','是错误的。然后你在I(:)之后放了一个点('。'),这也是错误的。我认为如果要附加文件,最好使用dlmwrite。它会像dlmwrite('C:\Users\HP\Desktop\test.csv',I(:)','-append')一样(因为你想要将每个图像作为一行,你需要转置数组)。

要在所有图像上使用此功能,请首先将所有图像读入单元格数组&然后你使用cellfun(@(x) dlmwrite('C:\Users\HP\Desktop\test.csv',x(:)','-append'),a)。或者对于更简单的版本,只需在for循环内的代码中运行行。