Arrays str2双回传

Arrays str2双回传,arrays,string,matlab,double,Arrays,String,Matlab,Double,我有一个岩石类型的向量,形式是 Rock_1 '1' % What I get after use regexp% Rock_2 '2' . . . ---------> . . . Rock_n 'n' 我对岩石的编号很感兴趣,所以我设法用 Rocks = regexp(P(:,3),'\d*','Match') 然后我需要将数

我有一个岩石类型的向量,形式是

Rock_1             '1' % What I get after use regexp%
Rock_2             '2' 
.                  . 
.      --------->  . 
.                  .
Rock_n             'n'
我对岩石的编号很感兴趣,所以我设法用

Rocks = regexp(P(:,3),'\d*','Match')
然后我需要将数字的单元格数组转换为数字矩阵,以便进行统计处理。问题是,在使用
str2double
之后,我得到了一个满是nan的数组。我看不出我做错了什么。请帮忙


非常感谢。

我认为您的问题在于,的输出是字符串单元格数组的单元格数组(即两级单元格封装),但您希望它是字符串单元格数组。您可以通过将添加到对
regexp
的调用中来实现这一点。然后,您将获得一个字符串单元格数组,该字符串可传递给:

>> 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