C++ 理解代码时遇到的问题
我不明白上面代码中这行的意思:C++ 理解代码时遇到的问题,c++,C++,我不明白上面代码中这行的意思: i = 0; while (fscanf(fp, "%f %f %d", &x[i], &y[i], &outputs[i]) != EOF) { if (outputs[i] == 0) { outputs[i] = -1; } i++; } patternCount = i; 它代表什么。输出是矩阵或向量 守则的参考资料如下: 所以它是一个向量文件???据我所知,代码是从一个文件读取的,文件应
i = 0;
while (fscanf(fp, "%f %f %d", &x[i], &y[i], &outputs[i]) != EOF) {
if (outputs[i] == 0) {
outputs[i] = -1;
}
i++;
}
patternCount = i;
它代表什么。输出是矩阵或向量
守则的参考资料如下:
所以它是一个向量文件???据我所知,代码是从一个文件读取的,文件应该有一个重复的模式,每个模式由3个数字组成 循环将每个模式中的第一个数字复制到x,第二个复制到y,最后一个复制到输出。但是,每当第三个数字为零时,它就会被更改为-1
patternCount将在文件中存储读取的模式数感知器是来自人工智能/神经网络的术语。它的运作方式与大脑中单个神经元的运作方式大致相同 它有多个输入和一个输出 这个文件所做的就是指定给定输入集的输出。这就是为什么
x/y
和output
的名称不同的原因
至于它为什么将输出从0变为-1(顺便说一下,这就是它所做的一切:将第三个文件列中的零变为负一),我不确定。感知器的输出几乎总是反馈给其他感知器,因此将-1传递给期望为0或1的对象是一个。。。有趣的。。。idea。输出定义为包含整数值的一维数组
I have a output file that has 3 columns:
1 0 0
0 0 1
0 1 0
可以将数组中的每个索引视为与文件中读取的行相对应 如果i==0,那么
i x y outputs
--------------------------------------
0 | -8.818681 3.025210 1
1 | 3.653846 -2.969188 0
2 | ... ... .
.. | ... ... .
208 | -6.565934 -4.649860 1
用户Amro发布的精彩代码和信息解释了输出的限制和功能 “…偏差项,即连接到值为1的输入的第三个权重分量。(+1/-1) “
数据文件中的输出值已分配为一个/零值。 因此,有问题的代码检查从文件读取的输出值是否等于零,并重新分配给-1
x[0] == -8.818681
y[0] == 3.025210
outputs[0] == 1
我不理解Matlab和C++如何在同一个问题……是一个<代码> 1-D < /Cord>数组,它就像数学中的向量。它改变了
v_i
,其中v
是向量,i
是索引。哦,对不起……我现在应该去掉那个标签了……但是为什么,输出[i]=0=>输出[i]=-1???谢谢……你能看到我现在发布的另一个问题吗……我非常需要帮助。我很乐意帮忙,@ishamahajan,但不幸的是,我不知道。在这个问题上,我很想帮忙,但我对Matlab一无所知。
i x y outputs
--------------------------------------
0 | -8.818681 3.025210 1
1 | 3.653846 -2.969188 0
2 | ... ... .
.. | ... ... .
208 | -6.565934 -4.649860 1
x[0] == -8.818681
y[0] == 3.025210
outputs[0] == 1
if (outputs[i] == 0)
outputs[i] = -1;