3

我有这个:

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

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

d = 2.5   3.5
4

1 回答 1

7

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

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

但是,您str2doublestr2num.文档中使用更好:

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

dVec = cellfun(@str2double, d);

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

dVec = str2double(d);

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

于 2013-03-16T00:57:09.447 回答