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

Matlab 将字符串数组转换为数字向量,matlab,Matlab,我有这个: d = {'2.5', '3.5'}; d = '2.5' '3.5' 如何将其转换为数字向量 d = 2.5 3.5 假设您有一个字符串值的单元格数组,您可以使用cellfun对每个条目应用str2num转换。输出将是转换值的向量/矩阵 d = {'2.3','3.5'} dVec = cellfun(@str2num, d); 但是,您最好使用str2double而不是str2num。从以下位置: 注意:str2num使用eval函数转换输入参数。 如果字符串包

我有这个:

d = {'2.5', '3.5'};
d = 
'2.5'    '3.5'
如何将其转换为数字向量

d = 2.5   3.5

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

d = {'2.3','3.5'}
dVec = cellfun(@str2num, d);
但是,您最好使用
str2double
而不是
str2num。
从以下位置:

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

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

dVec = str2double(d);

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

str2num(d)表示“需要字符串或字符数组输入”。实际数组中有很多值,所以不要逐个元素执行。已回答多次,但请参阅我的答案,了解如何在单元格数组的每个元素上应用
str2num
(或更好的
str2double
),您不需要cellfun。str2double可以很好地处理单元格数组。@yuk很好。更新。作为旁注,这仅适用于
str2double()
,而不适用于
str2num()
。str2double比使用string2mat的cellfun慢10-20%左右。
dVec = str2double(d);