Matlab单元格数组,数字为字符串,N/A存在

Zan*_*nam 0 matlab

我有一个单元格数组,看起来像:

'0.86'
'0.07'
'N/A'
'1.3'
Run Code Online (Sandbox Code Playgroud)

如何处理它以获得输出为双精度数组,如:

0.86
0.07
0.0
1.3
Run Code Online (Sandbox Code Playgroud)

当我尝试做类似的事情时,我陷入困境:

cellfun(@str2num,Array); 
Run Code Online (Sandbox Code Playgroud)

由于str2num无法处理'N/A',我猜.

谢谢

小智 5

你非常接近解决方案.而不是使用str2num,使用str2double.

所以,

Array ={'0.86', '0.07', 'N/A', '1.3'}
cellfun(@str2double,Array)
Run Code Online (Sandbox Code Playgroud)

哪个输出(按您的要求):

ans =

    0.8600    0.0700       NaN    1.3000
Run Code Online (Sandbox Code Playgroud)