Matlab:细胞到矩阵行

时间:2014-12-13 08:43:32

标签: matlab matrix cell readfile

我正在尝试将文本文件(逗号分隔值)转换为MATLAB中的矩阵。我已经能够将单独的行提取到单元格数组中,但我无法将这些值转换为矩阵形式。通过读取文件行获得的7X1单元格是行主,并具有以下值

line = 
      '123'
      ''
      '"Foo"'
      [1X27 char]
      '1.01'
      '2.02'
      '0'

因此,该文件基本上是类似行的集合。有关如何将这些线转换为矩阵形式的任何建议?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用cell2mat功能从单元格创建矩阵(有关详细信息,请参阅MATLAB help page)。由于您的单元格是列向量而您需要行向量,因此必须首先转置单元格。

row = cell2mat(line.');

如果要在所有元素之间添加空格,可以使用以下方法:

% Remove all empty fields
line = line(~cellfun(@isempty,line));

% Add a space after each element
line = strcat(line,{' '});

% Now call cell2mat
row = cell2mat(line.');

% and remove space at end
row = strtrim(row);

您可以使用regexpi查找引号并将其删除。

row = row(regexpi(row,'"')) = '';