在MATLAB中,我有一个字符串,格式如下,
str = 'var1,var2\nvar1,var2,var3\n,var9\n'\n\n,var12,var13,var14,v15;
我想将其转换为单元格矩阵,其中每个逗号,
分隔列中的不同项,每个\n
代表一个新行。每个值可以是字符串或双精度。
可以有空行和许多空值。最大的行可以是任何行。
我知道我可以循环拆分字符串并循环通过它添加到单元格矩阵中,但是有更有效的方法吗?如何有效地将上述字符串转换为单元格矩阵。
答案 0 :(得分:3)
您可以使用strsplit
和/或regexp
来获取单个单元格中的row,col元素:
>> strsplit(str,'\\n')
ans =
'var1,var2' 'var1,var2,var3' ',var9' ',var12,var13,var14,v15'
>> tab = regexp(strsplit(str,'\\n'),',','split');
>> tab{:}
ans =
'var1' 'var2'
ans =
'var1' 'var2' 'var3'
ans =
'' 'var9'
ans =
'' 'var12' 'var13' 'var14' 'v15'
然后你可以访问像:
这样的单元格>> tab{2}{3}
ans =
var3
这不是一个真正的2D细胞,但它可能有助于达到目的。