如何将字符串'pi'转换为双精度? (MATLAB 2015a)

问题描述 投票:0回答:1

[当我尝试将字符串'pi'转换为双精度字符时,它将转换为NaN。

>> str2double('pi')

ans =

   NaN

我正在读取一个包含逗号分隔值的文件,该值可能包含pi的倍数。例如(假设从文件中读取了pi_in_string):

>> pi_in_string = '0,1,-pi/6'

pi_in_string =

0,1,-pi/6

>> split_string = strsplit(pi_in_string, ',')

split_string = 

    '0'    '1'    '-pi/6'

>> str2double(split_string)

ans =

     0     1   NaN
matlab pi string-conversion
1个回答
0
投票

我发现我需要使用str2num而不是str2double,但是str2num在单元格数组上不起作用。因此,我改为遍历单元格数组中的元素,将每个元素首先转换为char类型,然后使用str2num。

pi_in_string = '0,1,-pi/6';
str_array    = strsplit(pi_in_string, ',');  %str_array now cell array
num_elements = length(str_array);            %get # elements to loop
num_vector   = zeros(1,num_elements);        %initialize vector

                                             %loop through elements in str_array
for i = 1:num_elements                       %converting each element first to type char

    num_vector(i) = str2num(char(str_array(i)));

end
© www.soinside.com 2019 - 2024. All rights reserved.