Если мы возьмем, например, вектор из одной строки
>>m = linspace(0,100,11)
>>J = exp(m.^0.25)
, мы получим
J =
Columns 1 through 4
1.0000 5.9197 8.2875 10.3848
Columns 5 through 8
12.3650 14.2841 16.1700 18.0385
Columns 9 through 11
19.8996 21.7599 23.6243
Мы получим правильный результат в первом элементе выходной матрицы, который равен e ^ (0 ^ 0,25) = e ^ 0 = 1
Но если мы возьмем
>> J = exp(m.^2.5)
Мы получим
J =
1.0e+137 *
Columns 1 through 4
0.0000 2.1676 Inf Inf
Columns 5 through 8
Inf Inf Inf Inf
Columns 9 through 11
Inf Inf Inf
Но e ^ (0 ^ 2,5) = e ^ 0 = 1
Я давно не использовал matlab. Я не представляю, как это работает, я сначала подумал, что это может быть округление, усечение или оба, я посмотрел вверх что это была за операция и некоторая документация по форматам, я обнаружил, что она показывает правильный результат в векторе, используя формат longE:
>>format longE
, который возвращает 1.000000000000000e + 00
, но Затем я проверил первую матрицу с enry 0 (формат по умолчанию короткий) с помощью
>>J(1)
И он вернул 1.
Таким образом, значение в этой записи является правильным, но оно показывает 0, и коэффициент вне матрицы 1,0e + 137 *
Я не понимаю, что происходит, почему он показывает 0?