matlab中怎么把inf还原成数值?

我写一个程序,需要用到10^500次方的数据,但是matlab就把这么大的数默认为是inf了。有没有什么办法能保留原数值而不变成inf呢?

具体的实现方法如下:
inf_ind = isinf(feat); [inf_r inf_c] = find(inf_ind==1); feat(:,inf_c)= [];
其中feat为一个矩阵,通过isinf函数对矩阵进行检索,得到的返回值中为1表明feat中对应位置的值为inf这样用find函数找出对应位置,最后直接替换就可以了。上面的例子是替换为空,可以按照需要设定为任意值。

>> feat = [1 2 3 inf 4 5]
feat =
1 2 3 Inf 4 5
>> inf_ind = isinf(feat)
inf_ind =
0 0 0 1 0 0
>> [inf_r inf_c] = find(inf_ind==1)
inf_r =
1
inf_c =
4
>> feat(:,inf_c)= []
feat =
1 2 3 4 5
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-24
用符号计算
vpa('10^500')
第2个回答  2011-03-25
(a^2))
int(eq,a,b,inf)
相似回答