将字符串数组转换为数字向量

abh*_*hek 3 matlab

我有这个:

d = {'2.5', '3.5'};
d = 
'2.5'    '3.5'
Run Code Online (Sandbox Code Playgroud)

如何将其转换为数字向量?

d = 2.5   3.5
Run Code Online (Sandbox Code Playgroud)

gev*_*ang 7

鉴于您有一个字符串值的单元格数组,您可以使用在每个条目上cellfun应用str2num转换.输出将是转换值的向量/矩阵.

d = {'2.3','3.5'}
dVec = cellfun(@str2num, d);
Run Code Online (Sandbox Code Playgroud)

不过,你最好使用str2double比str2num.从文档:

注意:str2num使用eval函数转换输入参数.如果字符串包含对函数的调用,则可能发生副作用.使用str2double可以避免一些副作用.

dVec = cellfun(@str2double, d);
Run Code Online (Sandbox Code Playgroud)

更新:正如@yuk指出的那样,您可以str2double()直接在单元阵列上调用相同的输出.

dVec = str2double(d);
Run Code Online (Sandbox Code Playgroud)

请注意,相同的调用str2num()将给出"必须是字符串或字符串数​​组"错误.

  • 你不需要cellfun.str2double与单元格数组完美配合. (4认同)