格式化单元格加倍

时间:2016-11-09 03:08:50

标签: matlab number-formatting cell-array

我有文本文件,其中数据类似于(1,2),(3,4),1(4,5),(6,7),1 我在matlab中读取文件:

hashValue

输出

A= textread('abc.txt', '%s');

任何人都可以帮助将此单元格转换为输出加倍

A: 2x1 cell
(1,2),(3,4),1 
(4,5),(6,7),1

2 个答案:

答案 0 :(得分:0)

对于您的特定示例,一旦您阅读该文件,您就可以使用textscan

    A = {'(1,2),(3,4),1' 
         '(4,5),(6,7),1'};

    New_A = cell2mat(cellfun(@(line) cell2mat(textscan(line,'(%f,%f),(%f,%f),%f')), A, 'UniformOutput', 0));


New_A =

     1     2     3     4     1
     4     5     6     7     1

您也可以逐行执行相同操作,因为它们是从文件中读取的。

答案 1 :(得分:0)

可以使用regexprepcell2matstr2num完成此操作,如下所示:

A = {'(1,2),(3,4),1'
     '(4,5),(6,7),1'};  % This is what you get after this: A= textread('abc.txt', '%s'); 
New_A = regexprep(A,'(\(|\))',''); %Removing the brackets ()
New_A = str2num(cell2mat(New_A))   %Converting char cell to numeric matrix