假设我有一个包含以下元素的数组:
dst.pixels=dst.pixels.byteswap(True).newbyteorder()
现在,有没有办法单独抓取
1.0e+14 *
1.3325 1.6485 2.0402 1.0485 1.2027 2.0615 1.7432 1.9709 1.4807 0.9012
(基数和指数)?
如果我1.0e+14 *
,那么这将返回arr(10)
而不是9.0120e+13
。
假设问题是抓住数组中系数小于1的任何元素。有没有办法获得0.9012e+14
,以便我可以1.0e+14
?
答案 0 :(得分:1)
我假设你想要字符串输出。
让a
表示输入数值数组。你可以这样做,如果你不介意使用evalc
(eval
的变体,这被认为是不好的做法):
s = evalc('disp(a)');
s = regexp(s, '[\de+-\.]+', 'match');
这将生成一个包含所需字符串的单元格数组。
示例:
>> a = [1.2e-5 3.4e-6]
a =
1.0e-04 *
0.1200 0.0340
>> s = evalc('disp(a)');
>> s = regexp(s, '[\de+-\.]+', 'match')
s =
'1.0e-04' '0.1200' '0.0340'
答案 1 :(得分:-1)