连续双矩阵现在是复杂的双重类型:为什么?

时间:2014-05-14 20:05:51

标签: matlab matrix

我有一组存储在文本文件中的双矩阵。我通过垂直连接一组这些双矩阵文本文件来创建另一个文件。问题是如果在matlab中读取的连接文件现在是复数double类型的事实。我希望这个矩阵的类型为double,就像母文件一样。

串联是由一个非常愚蠢的代码完成的。在循环中,我只是在读取文件后进行垂直连接

   //outside the loop
   vector=dlmread(['fv/test_feature_vectors/' new_name '.txt']);
   //loop begin 
   vector2=dlmread(['fv/test_feature_vectors/' new_name2 ]);
   vector=vertcat(vector,vector2); 
   //loop end
   dlmwrite(['fv/train_feature_vectors/fold' int2str(i-2) '.txt'], vector);

如果我对vector变量执行whos命令,我有:

   whos vector                  
   Name           Size                 Bytes      Class    Attributes
   vector         10577x705            119308560  double    complex   

如果我在最后一个vector2变量中做同样的事情,我有:

   Name          Size              Bytes      Class     Attributes
   vector2       22x705            124080     double              

为什么会这样?为什么verticaly连接矩阵是复数型的?我的一些文本文件具有复杂的双值,我没有'注意到(我有数百个文件)?怎么摆脱这个?

1 个答案:

答案 0 :(得分:1)

如果您写入文件'fv/test_feature_vectors/' new_name/2 '.txt'的数据很复杂,那么在文本文件中它将被写为real + i imaginary。然后它也将被视为复杂的双重。

如果您知道它是真实的,您可以安全地忽略real的虚部。

问题是更早。写入文件的数据不应该很复杂,因此之前可能存在一个小错误。