我有一个岩石类型的向量,形式为
new = current.replace("1","011")
= 0011011 #not what I wanted
我对岩石的数量感兴趣,因此我设法使用
Rock_1 '1' % What I get after use regexp%
Rock_2 '2'
. .
. ---------> .
. .
Rock_n 'n'
然后,我需要将数字的单元格数组转换为数字矩阵,以便进行统计处理。问题是使用Rocks = regexp(P(:,3),'\d*','Match')
之后,我得到了一个充满NaN的数组。我看不到我在做什么错。请帮助。
非常感谢。
答案 0 :(得分:3)
我认为您的问题是regexp
的输出是字符串单元格数组的单元格数组(即两个级别的单元格封装),但是您希望它是字符串单元格数组。您可以通过将'once'
option添加到对regexp
的调用中来实现。然后,您将获得一个可以传递给str2double
的字符串单元格数组:
>> P = {'Rock_1', 'Rock_2', 'Rock_3'}; % Sample data
>> Rocks = regexp(P, '\d*', 'match'); % How you did it above
>> str2double(Rocks)
ans =
NaN NaN NaN
>> Rocks = regexp(P, '\d*', 'match', 'once'); % With the 'once' option
>> str2double(Rocks)
ans =
1 2 3