之前,我已经实施了此功能,并且它起到了作用:
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);
我甚至可以用下面的东西检查我是否得到了正确的尺寸,一切都很好。
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);
}
}
以下是错误消息:
rbm. cpp:在函数“ululemexFunction(int, mxArray**, int, const mxArray**)”中:rbm. cpp: 570:64: error:从“int”到“int*”的无效转换[-fpermissive]rbm. cpp: 81:6: error:初始化“ululeRBM::contrastive_divergence(int*, Double, int)”的参数1[-fpermissive]rbm. cpp: 615:32: error:数组下标的无效类型“int[int]”
列车X是一个int*。当您执行train\u X[i]时,您现在会得到一个intContrast\u Difference()
虽然需要一个int*。由于无法将int转换为int,因此会出现后续错误。您需要将列车的地址传递为
我想创建一个简单的3x3矩阵类,并能够通过下标操作符访问其内容。代码如下: 我希望能够访问数组的元素,无论矩阵的对象是常量还是非常量。但我从编译器中得到以下错误: 错误:从“const int*”到“int*”的转换无效[-fpermissive] 我做了一些研究,我有一个假设:也许,因为我已经将这个成员函数声明为const函数,在它的定义中,编译器将对象的所有不可变成员视为const成员(它掩盖
我一直在尝试编译,并玩了一圈的和数,但仍然不能弄清楚错误是什么。有什么想法吗? 标题:
我使用< code>typedef unsigned int value_t定义了一个类型;和一个函数 编译器拒绝编译它,说:无效的转换从'int(*)()(true)'到'value_t{aka int}'。 这是什么意思?查看numeric_limits类,< code>min()函数应该返回一个通过template typename传递给它的类型的变量,在本例中是< code>value_t
问题内容: 我想对成绩簿方法使用2D数组,其中包含学生姓名,然后是考试成绩。在课堂上,我有以下内容。 但是我得到一个错误int []无法转换为int。 问题答案: 你有: 但是是一个。数组维数必须为,因此不能用作数组维数(鉴于字面量是多少,我可以理解您对错误的困惑:它想要一个,但您给了它一个)。 从您的描述来看,我猜您的意思是: 哪里是你需要的,包含考试的次数。不过,只是一个猜测。
问题内容: 这里是编程的新手,并且我一直收到错误消息,“不兼容的类型,不能将int转换为int []”,问题是如果R1和R2的长度相等,则将它们加在一起,如果没有打印出一条信息,说明“数组的长度必须相同”,如果这很重要,则不知道我在哪里出错,将不胜感激任何帮助 问题答案: 您需要分配给数组元素,但是这样做做错了。
我想将浮点值转换为int值或抛出异常,如果这种转换是不准确的。 我找到了以下建议:使用来转换,然后使用来检查这些值是否相等。如果它们相等,那么转换是精确的,否则就不是。 但是我发现了一个不起作用的例子。下面是演示这个例子的代码: 它输出: 我知道2147483648不适合整数范围,但我很惊讶为这些值返回true。有没有更好的方法来比较float和int?我想可以将这两个值都转换为字符串,但对于这样