我正在尝试将文本文件(逗号分隔值)转换为MATLAB中的矩阵。我已经能够将单独的行提取到单元格数组中,但我无法将这些值转换为矩阵形式。通过读取文件行获得的7X1单元格是行主,并具有以下值
line =
'123'
''
'"Foo"'
[1X27 char]
'1.01'
'2.02'
'0'
因此,该文件基本上是类似行的集合。有关如何将这些线转换为矩阵形式的任何建议?任何帮助将不胜感激。
答案 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,'"')) = '';