matlab中怎么把inf还原成数值? 20
我写一个程序,需要用到10^500次方的数据,但是matlab就把这么大的数默认为是inf了。有没有什么办法能保留原数值而不变成inf呢?...
我写一个程序,需要用到10^500次方的数据,但是matlab就把这么大的数默认为是inf了。有没有什么办法能保留原数值而不变成inf呢?
展开
3个回答
展开全部
具体的实现方法如下:
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询