matlab中str2num和str2double的比较

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 20:02   11   0

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

如下面一段程序中:

largest_num = 2^dim_max-1;
for i = 0:largest_num
    num(i+1) = i;
end
binary = dec2bin(num);

for i = 0:largest_num
    for j = 1:dim_max
        int2binary(i+1,j) = str2double(binary(i+1,j));
    end
end

f = 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输出正解。

第一条语句运行结果:



第二条语句运行结果:


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP