转换字符串数组为数字
答
既然你有字符串值的单元阵列,可以使用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()
相同的呼叫会给“必须是一个字符串或字符串数组”错误。
str2num(d)表示'需要字符串或字符数组输入'。实际数组中有很多值,所以不要一个一个地去做。 – abhishek 2013-03-16 00:38:10
已经被回答了很多次,但是看到我对如何在单元阵列的每个元素上应用'str2num'(或更好的'str2double')的回答。 – gevang 2013-03-16 00:58:14