把一个数表示成a与10的n次幂相乘的形式(1≤a<10,n为整数),这种记数法叫做科学记数法。
解决办法:将科学计算法转换为字符串,如5.624E+14,我们只需要找到字符E,将后面的提取出来即可。matlab中指数表示为e,即5.624Ee+14,但是如果我们输入5.624E+14时好像必须是E。
办法1:提取指数e前的a
function y = getmydata2(a) % 存为 getmydata2.m
s = num2str(a,'%1.4e');
id = find(s=='e');
s = s(1:id-1);
y = str2num(s);
办法2:提取指数e后的指数
function y = getmydata2(a) % 存为 getmydata2.m
s = num2str(a,'%1.4e');
id = find(s=='e');
s = s(id+1:end);
y = str2num(s);
注意:字符串第id位是e,id+1位是正负号,id+2位后面才是指数,可根据据情况修改。
这是来自一个人的回答,具体网址找不到了,希望对大家又帮助。