【问题标题】:How to overcome dimension mismatch for writing to a CSV file in MATLAB?如何克服在 MATLAB 中写入 CSV 文件的尺寸不匹配问题?
【发布时间】:2014-01-08 23:23:34
【问题描述】:

我计算了一个 4*4 矩阵的图像的特征。我为 21 张图像(同一个人但 21 个不同姿势)提取了这些特征。我现在想将这些功能存储到带有标签 +1 的 CSV 文件中。我尝试使用

features=ctsfeatures(inputdata); %inputdata is an array of 21 images                                                                                              
for i=1:length(features)                                                
   for j=1:1
       label(i,j)=+1;
   end
end

csvwrite('fea.csv',[label features]);    

但我收到以下错误:

Horzcat dimension mismatch in line csvwrite('fea.csv',[label features]);     

请告诉我如何克服这个错误。在此先感谢。

【问题讨论】:

  • 您需要确保labelfeatures 在您要连接的维度上具有相同的维度。 labelfeatures的尺寸是多少?
  • 特征的维度为 21*1。而且由于我已经针对标签的大小运行了一个循环,因此它应该与功能相同,并且确实如此,即 21*1。
  • 那你引用的4x4矩阵是什么?
  • 我无法重现您的错误。只需在 csvwrite 之前仔细检查大小(标签)和大小(特征),确保它们相同。
  • 你在标签更改中使用的语法很奇怪。我会推荐label(i,j)=1(做你现在做的事情)或者label(i,j)=label(i,j)+1(给相关元素加1)

标签: matlab csv


【解决方案1】:

由于您的特征大小为4*4,因此您需要具有大小为4*4 的标签

features=ctsfeatures(inputdata); %inputdata is an array of 21 images                                                                                              
for i=1:size(features,1)                                                
   for j=1:size(features,2)
      label(i,j)=+1;
   end
end

csvwrite('fea.csv',[label features]);  

【讨论】:

  • 请注意,这个双 for 循环可能会简化为:label(1:size(features,1) ,1:size(features,2)) = 1
  • @Lokesh , Dennis :我会试试这个并得到结果。谢谢
猜你喜欢
  • 2014-12-14
  • 1970-01-01
  • 2011-03-24
  • 2013-12-23
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2021-07-23
相关资源
最近更新 更多