Я использовал модель логистической регрессии, чтобы получить формулу. Потому что я принимал каждый час в качестве фактора, поэтому этот коммутационный шкаф очень длинный, неудобный для изменения и не красивый. Есть ли способ упростить его? Может быть, я должен попытаться использовать матрицы для арифметики?Есть ли способ сделать этот C-переключатель более простым?
...
#define elif else if
...
// hours
switch (hours) {
case 0:
prob[2] = prob_base[7];
break;
case 1:
prob[2] = prob_base[8];
break;
case 2:
prob[2] = prob_base[9];
break;
case 3:
prob[2] = prob_base[10];
break;
case 4:
prob[2] = prob_base[11];
break;
case 5:
prob[2] = prob_base[12];
break;
case 6:
prob[2] = prob_base[13];
break;
case 7:
prob[2] = prob_base[14];
break;
case 8:
prob[2] = prob_base[15];
break;
case 9:
prob[2] = prob_base[16];
break;
case 10:
prob[2] = prob_base[17];
break;
case 11:
prob[2] = prob_base[18];
break;
case 12:
prob[2] = prob_base[19];
break;
case 13:
prob[2] = prob_base[20];
break;
case 14:
prob[2] = prob_base[21];
break;
case 15:
prob[2] = prob_base[22];
break;
case 16:
prob[2] = prob_base[23];
break;
case 17:
prob[2] = prob_base[24];
break;
case 18:
prob[2] = prob_base[25];
break;
case 19:
prob[2] = prob_base[26];
break;
case 20:
prob[2] = prob_base[27];
break;
case 21:
prob[2] = prob_base[28];
break;
case 22:
prob[2] = prob_base[29];
break;
case 23:
prob[2] = prob_base[30];
break;
default:
prob[2] = 0;
break;
}
// bidf
prob[3] = prob_base[31] * atof(bidf);
// isp
switch (isp) {
case 1:
prob[4] = prob_base[32];
break;
case 2:
prob[4] = prob_base[33];
break;
case 3:
prob[4] = prob_base[34];
break;
default:
prob[4] = 0;
break;
}
...
arrx [2] = Arry [I + 7] –
Может 'PROB [2] = prob_base [часы + 7]'? –
Вне темы: это должно продолжаться при просмотре кода. Кстати, это не ключевое слово 'elif' в C. – Stargateur