matlab中str2num和str2double的比较

来源:互联网 发布:vm虚拟机安装mac 编辑:程序博客网 时间:2024/06/04 23:26

str2num针对的对象是矢量,str2double针对的对象是标量。

如下面一段程序中:

largest_num = 2^dim_max-1;for i = 0:largest_num    num(i+1) = i;endbinary = dec2bin(num);for i = 0:largest_num    for j = 1:dim_max        int2binary(i+1,j) = str2double(binary(i+1,j));    endendf = str2num(binary);f = str2double(binary);



讨论一:在如下语句中str2double的运行效率是高于str2num的

int2binary(i+1,j) = str2double(binary(i+1,j));

讨论二:在最后两个语句中的结果

binary是一个256*8的字符矩阵,第一条语句中f的结果是一个256*1的数值矩阵,因为str2num将字符矩阵按行识别并且转化为数值,第二条语句则无法输出,因为str2double只针对标量,你输入一个矢量矩阵是怎么个意思呢?所以会使用这个for循环逐个转化,然后f = int2binary输出正解。

第一条语句运行结果:



第二条语句运行结果:


原创粉丝点击