文章 "自组织特征映射 (Kohonen 映射) - 再访主题" - 页 4

 
Vladimir Karputov:
  1. 组合("0"、"11"、"12"、"21"、"22") 我今天只是举了个例子。我不知道它们是否有效。这就是我想问的--如果我想出了各种各样的组合,网格会对我有什么帮助?我以为这个网格会直观地显示我的例子在某些组(群?
  2. 那么,如果我把"......例如,一列中 Open[i]-Close[i] 之间的差值,以及另一列中 Open[i+1]-Close[i+1] 之间的差值...... "放在一起,会有什么反馈呢?我会看到不同的颜色,但哪个是哪个呢?


在这里一切都是透明的,每个节点都有程序访问权限,你既可以获取节点的数据,也可以通过给出一个网格示例来获取哪个节点对示例的响应。

请仔细阅读这篇文章。地图可视化只是一种额外的信息输出,文章中有些例子没有可视化,但网络却能正常工作。

 

你好,编译时出现错误:

  • 'SOM_Net_Base.mqh' SOM_Net_Base.mqh 1 1
  • SOMNode.mqh' SOMNode.mqh 1 1
  • 无法将'Conversion_Double'转换为'Conversion_UChar' SOM_Net_Base.mqh 115 21
  • 1 个错误,0 个警告 2 1

      for(int i=0;i<count_double;i++)
        {
         c_uchar[i]=(Conversion_UChar) c_double[i];
         for(int j=0;j<8;j++) {txtdownl[dcnt]=c_uchar[i].c[j]; dcnt++;}
        }

由于某种原因,数据类型 未转换为

struct Conversion_Double { double d; };

类型

struct Conversion_UChar  { uchar  c[8];};


 
Andrey Litvichenko:

你好,编译时出现错误:

#include <TypeToBytes.mqh> //https://www.mql5.com/zh/code/16280

      for(int i=0;i<count_double;i++)
        {
         _W(c_uchar[i])=c_double[i];
         for(int j=0;j<8;j++) {txtdownl[dcnt]=c_uchar[i].c[j]; dcnt++;}
        }


您能否替换掉整段原始代码

      ArrayResize(c_uchar,count_double);
      uchar txtdownl[]; ArrayResize(txtdownl,count_double*8);
      int dcnt=0;
      for(int i=0;i<count_double;i++)
        {
         c_uchar[i]=(Conversion_UChar)c_double[i];
         for(int j=0;j<8;j++) {txtdownl[dcnt]=c_uchar[i].c[j]; dcnt++;}
        }
      string txt_titles=CharArrayToString(txtdownl);  Print(txt_titles);


用以下代码替换

      string txt_titles=NULL;
      _W(txt_titles) = c_double;  Print(txt_titles);
 
Andrey Litvichenko:

你好,我在编译时出错了:

  • 'SOM_Net_Base.mqh' SOM_Net_Base.mqh 1 1
  • SOMNode.mqh' SOMNode.mqh 1 1
  • 无法将'Conversion_Double'转换为'Conversion_UChar' SOM_Net_Base.mqh 115 21
  • 1 个错误,0 个警告 2 1

由于某种原因,数据类型 未转换为

类型



根据设计,它不应该被转换。它给出的是警告而不是错误,不用在意,应该是这样的。

在不进行类型转换的情况下从一个结构向另一个结构传输数据时,传输的是二进制数据,而不是十进制映射,这在本例中是必需的。

这不是一个错误,而是一个功能。

 
Nikolay Demko:

它不应该转换。它给出的是警告,而不是错误,不用注意,应该是这样的。

在不进行类型转换的情况下从一个结构向另一个结构传输数据时,传输的是二进制数据,而不是十进制映射,这在本例中是必需的。

这不是一个错误,而是一个功能。


这就是问题所在:它会产生错误并拒绝编译:

  • 1 个错误,0 个警告 2 1
 
这里的类型转换 规则 "略有 "改变)。
 
fxsaber:


能否用以下代码替换整个原始代码


可以这样替换。


_W 操作符将用于反向转换,即用于

_W(c_double[i])=c_uchar[i];

?

 
Andrey Litvichenko:

_W 运算符也适用于逆变换,即

?

是的,两种方式都有效。下面是一些例子

 
fxsaber:

是的,两种方式都有。下面是一些例子


谢谢,它正在工作

 

下午好、

不幸的是,我访问这篇文章的时间太晚了,现在存档中的文件明显丢失了。

CSOM_Net_Base,
CSOM_Net_Train

是故障还是访问限制