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

时间:2013-03-16 00:30:38

标签: matlab

我有这个:

d = {'2.5', '3.5'};
d = 
'2.5'    '3.5'

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

d = 2.5   3.5

1 个答案:

答案 0 :(得分:7)

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

d = {'2.3','3.5'}
dVec = cellfun(@str2num, d);

但是,您最好使用str2double而不是str2num.来自documentation

  

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

dVec = cellfun(@str2double, d);

更新:正如@yuk指出的那样,您可以直接在单元格数组上调用str2double()以获得相同的输出。

dVec = str2double(d);

请注意,使用str2num()进行同一调用会使“必须是字符串或字符串数​​组”错误。