Как обнаружить некоторые элементы в векторе?

У меня есть вектор, скажем [1,2,710]. Когда я беру exp ([1,2,710]), я получаю ans=[2.7183,7.2891,Inf]. Поскольку окончательный ответ очень большой, я хочу сначала обнаружить его и сбросить его до очень большого значения, скажем 1e+305. Я использую isinf, чтобы помочь мне, но isinf(ans) дает все 0. Что нужно сделать, чтобы решить проблему? Обратите внимание, что входной вектор может изменяться.

1 ответ

  1. Попробовать это:

     maximum_num = 99999;
    
    vec = [1,2,710];
    expVec = exp(vec);
    
    expVec(expVec > maximum_num) = maximum_num;
    

    maximum_num сохраняет наибольшее допустимое значение в векторе. так что если вы работаете с double your можно просто использовать maximum_num= realmaxвместо первой строки кода.