C++ 从';int';至int*[-fpemmissive]

C++ 从';int';至int*[-fpemmissive],c++,matlab,mex,C++,Matlab,Mex,之前,我已经实施了这一方案,并且效果良好: int *train_X = (int *)mxGetData(IN_a);// pointer to 6th argument matrix train_X for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { cout << train_X[6 * i + j] << endl; } } int siz

之前,我已经实施了这一方案,并且效果良好:

int *train_X = (int *)mxGetData(IN_a);// pointer to 6th argument matrix train_X 

for (int i = 0; i < 6; i++)
{
    for (int j = 0; j < 6; j++)
    {
        cout << train_X[6 * i + j] << endl;
    }
}

int sizeTrain_X1 = mxGetM(IN_a);
int sizeTrain_X2 = mxGetN(IN_a);
int*train_X=(int*)mxGetData(IN_a);//指向第6列参数矩阵的指针
对于(int i=0;i<6;i++)
{
对于(int j=0;j<6;j++)
{

cout
train\ux
是一个
int*
。当你做
train\ux[i]
时,你现在得到一个
int
对比散度()
虽然需要一个
int*
。由于无法将
int
转换为
int*
,您将得到后续错误。您需要将
列车X[i]
的地址作为
和列车X[i]传递
或只是通过
列车
列车
是一个
int*
。当你通过
列车
时,你现在得到一个
int
对比散度()
虽然需要一个
int*
。由于无法将
int
转换为
int*
,您将得到后续错误。您需要将
train_X[i]
的地址作为
和train_X[i]
传递,或者只传递
train_X

cout <<"Training input NumOfCollum:\n"<< sizeTrain_X1 << endl;
cout << "Training input NumOfRows:\n"<<sizeTrain_X2 << endl;
for (int epoch = 0; epoch<training_epochs; epoch++)
{
    for (int i = 0; i<train_S; i++)
    {
        rbm.contrastive_divergence(train_X[i], learning_rate, k);
    }
}