MATLAB: вывод функции возвращает выражение с переменными, которые все еще не оценены - PullRequest
0 голосов
/ 26 апреля 2018

Например, в нашей системе есть переменная TK, которую мы подключаем к следующему:

T = input(prompt10);
TK = T + 273.15;

H_SO2_298 = 0.033717;                                  
H_SO2_T = H_SO2_298*exp(-3100*((1/TK)-(1/298.15))) 

Возвращает:

(151847868636051*exp(62000/5963 - 3100/TK))/4503599627370496

Мы в растерянности,Мы думали, что это проблема с классом данных, но попытка изменить либо вывод, функцию H_SO2_T, либо оригинальную модификацию T prompt / TK с помощью vpa () не работает (или в этом случае double ()).

Есть идеи?

1 Ответ

0 голосов
/ 26 апреля 2018

Если я определю

prompt10 = 'Specify a temperature: '

Тогда ваш код оценивается в double, как и следовало ожидать. Вы, вероятно, на самом деле не запускаете код, который вы говорите. Скорее я бы предположил, что в какой-то момент вы определили символическую переменную Tk, а затем никогда не очищали ее. Пожалуйста, попробуйте запустить следующий код и посмотреть, даст ли он результат, который вы ищете. Если это дает ожидаемый результат, то это была ваша проблема. В противном случае нам нужно больше подробностей о том, что такое prompt10.

clear all
prompt10 = 'temperature: ';
T = input(prompt10);
TK = T + 273.15;

H_SO2_298 = 0.033717;                                  
H_SO2_T = H_SO2_298*exp(-3100*((1/TK)-(1/298.15))) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...