Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法使这个C开关盒更简单?_C_Logistic Regression - Fatal编程技术网

有没有办法使这个C开关盒更简单?

有没有办法使这个C开关盒更简单?,c,logistic-regression,C,Logistic Regression,我用逻辑回归模型得到了一个公式。因为我把每小时作为一个因素,所以这个开关箱很长,不方便修改,而且不美观。有没有办法简化它?也许我应该试着用矩阵做算术 ... #define elif else if ... // hours switch (hours) { case 0: prob[2] = prob_base[7]; break; case 1: prob[2] = prob_base[8]; break;

我用逻辑回归模型得到了一个公式。因为我把每小时作为一个因素,所以这个开关箱很长,不方便修改,而且不美观。有没有办法简化它?也许我应该试着用矩阵做算术

...
#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;
}
...
大概是这样的:

if (hours >= 0 && hours < 24)
  prob[2] = prob_base[hours + 7];
else
  prob[2] = 0;

prob[3] = prob_base[31] * atof(bidf);

if (isp >= 1 && isp < 4)
  prob[4] = prob_base[isp + 31];
else
  prob[4] = 0;
if(小时数>=0&&hours<24)
概率[2]=概率基数[h+7];
其他的
prob[2]=0;
prob[3]=prob_base[31]*atof(bidf);
如果(isp>=1&&isp<4)
prob[4]=prob_基[isp+31];
其他的
prob[4]=0;

arrx[2]=arry[i+7]也许
prob[2]=prob\u base[hours+7]
?离题:这应该继续代码审查。顺便说一句,它们在C中不是关键字
elif
。你看不到这里的模式吗?@Stargateur否定,这绝对不能进入代码审查,因为它不起作用。
//hours
prob[2] = prob_base[hours+7];          //no switch required