【发布时间】:2015-04-20 04:38:27
【问题描述】:
////////////////////MAKE INPUT VALUES////////////////////
double *NumOfInputsPointer = NULL;
std::cout << "How many inputs?" << std::endl;
int NumOfInputs;
std::cin >> NumOfInputs;
NumOfInputsPointer = new double[NumOfInputs];
std::cout << std::endl;
double InputVal;
for(int a = 0; a < NumOfInputs; a++)
{
std::cout << "What is the value for input " << a << std::endl;
a+1;
std::cin >> InputVal;
*(NumOfInputsPointer + a) = InputVal;
}
std::cout << std::endl;
////////////////////MAKE WEIGHTS////////////////////
double *NumOfWeightsPointer = NULL;
int NumOfWeights;
NumOfWeightsPointer = new double[NumOfWeights];
double WightVal;
for(int a = 0; a < NumOfInputs; a++)
{
*(NumOfWeightsPointer + a) = 0.5;
}
////////////////////Multiplication BRAIN BROKE!!!!!////////////////////
double *MultiplyPointer = NULL;
MultiplyPointer = NumOfInputsPointer;
for(int a = 0; a < NumOfInputs; a++)
{
//Stuff to do things
}
上面的代码将创建一个人工神经元。我已经构建了一个数组,其中包含用户想要的输入数量,然后自动使每个输入的权重为 0.5。
我撞到的墙使我难以将输入值数组与其权重数组相乘,然后将它们保存在另一个数组中以便稍后相加,然后通过修改器。
我的斗争是乘法并将其保存到数组中。我希望我能很好地解释我的问题。
【问题讨论】:
-
您在第一个 for 循环中使用
a+1;。如果你想做增量,请使用a=a+1;或a++;。 -
像其他数组一样分配新数组,然后
MultiplyPointer[a] = NumofInputsPointer[a] * NumOfWeightsPointer[a]?另请阅读有关 stdvector的信息...另请注意,您在使用NumOfWeights之前没有初始化它...您打算让所有这些向量的大小相同吗? -
@Guy Sirton:进行了您建议的更改,并且效果很好!修复了 NumOfWeights,并且肯定也会查看 std::vector。可能有助于清理我的代码。
标签: c++ arrays artificial-intelligence multiplication