在字符串的单元格数组中找到最大数字(MATLAB)

ryh*_*h12 1 matlab cell-array

如果我有一个由字符串组成的单元格数组M(其中一些是字符串包含单词,其他包含数字)

M={'r' '2'  '17'
   '2' 's'  '15'
   '5' '10' 'rr'
   }
Run Code Online (Sandbox Code Playgroud)

如何在第二列中获得最大数量,那么答案将是10?

Rod*_*uis 5

使用这样的事实str2double非数字的字符串转换为NaN,其max()默认忽略:

mx = max( str2double(M(:,2)) )
Run Code Online (Sandbox Code Playgroud)

为了计算平均值,MATLAB的默认行为是 CLUDE NaN,所以你必须告诉它的行为,否则:

mn = mean( str2double(M(:,2)), 'omitnan')
Run Code Online (Sandbox Code Playgroud)