|
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输出正解。
第一条语句运行结果:

第二条语句运行结果:

|