文章 "MQL5 中的矩阵和向量操作" - 页 5 1234567 新评论 Aleksey Vyazmikin 2022.10.10 16:42 #41 那么,如何从矩阵中取出一列呢? Rashid Umarov 2022.10.10 16:49 #42 Aleksey Vyazmikin #:这不是一个向量,而是一个矩阵,我有上面的代码 你必须自己解决,或者说服编译器。请阅读示例。 Rashid Umarov 2022.10.10 16:51 #43 Aleksey Vyazmikin #: 那么,如何从矩阵中获取一列呢? 使用 Col 可以从 矩阵 中取出一个向量。 你说的 "取出 "是什么意思?删除? Документация по MQL5: Методы матриц и векторов / Манипуляции / Col www.mql5.com Col - Манипуляции - Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Aleksey Vyazmikin 2022.10.10 16:53 #44 Rashid Umarov #:您可以使用 Col你说的 "取出 "是什么意思?删除? 取出是指将它转换成可以使用的东西。 我在上面展示了我在使用 Col 时失败的代码,它是一个矩阵,而不是你写的矢量。 Rashid Umarov 2022.10.10 16:55 #45 你需要休息,明天重新阅读讨论中的所有问题。 Aleksey Vyazmikin 2022.10.10 16:58 #46 Rashid Umarov #: 您需要休息一下,明天再重新阅读您在本网站上提出的所有问题。 谢谢您的关心! 在您的帮助下,大部分问题都得到了解决。 我会等到明天,也许您可以稍后再回答我的问题。 Valeriy Yastremskiy 2022.10.10 20:25 #47 Rashid Umarov #:无人阅读,但愿意支持。我好像在机器学习主题里看到过你?如果是的话,你应该能理解文章中的内容。 我想我没有完全理解。为什么一个矩阵元素有 3 个值。这是一个三维数组。为什么帮助中的矢量是一维数组,而本例中的矩阵是三维数组?ZY, it happens)))) in the example there are 3 rows and 4 columns)))) matrix)))))) Denis Kirichenko 2022.10.11 09:59 #48 这里 可能有点小错误: //--- 矩阵复制 matrix a= {{2, 2}, {3, 3}, {4, 4}}; matrix b=a+2; matrix c; Print("matrix a \n", a); Print("matrix b \n", b); c.Assign(b); Print("matrix c \n", a); /* 矩阵 a [[2,2] [3,3] [4,4]] 矩阵 b [[4,4] [5,5] [6,6]] 矩阵 C [[2,2] [3,3] [4,4]] */ 应该是这样的 //--- 矩阵复制 matrix a= {{2, 2}, {3, 3}, {4, 4}}; matrix b=a+2; matrix c; Print("matrix a \n", a); Print("matrix b \n", b); c.Assign(b); Print("matrix c \n", с); /* 矩阵 a [[2,2] [3,3] [4,4]] 矩阵 b [[4,4] [5,5] [6,6]] 矩阵 C [[4,4] [5,5] [6,6]] */ Denis Kirichenko 2022.10.11 10:33 #49 在"将时间序列复制到矩阵或向量 " 一节中还有一个小错误: //--- 要计算的字符列表 string symbols[]= {"EURUSD", "GBPUSD", "USDJPY", "USDCAD", "USDCHF"}; int size=ArraySize(symbols); //-----------------------------------------------矩阵和向量来获取价格 关闭 matrix rates(InBars, size); vector close; for(int i=0; i<size; i++) { //--- 将收盘价输入矢量 if(close.CopyRates(symbols[i], InTF, COPY_RATES_CLOSE, 1, InBars)) { //--- 将矢量插入时间序列矩阵中 rates.Col(close, i); PrintFormat("%d。%s:%d 收盘价已添加到矩阵中"。, i+1, symbols[i], close.Size()); //--- 输出向量的前 20 个值,以便调试 int digits=(int)SymbolInfoInteger(symbols[i], SYMBOL_DIGITS); Print(VectorToString(close, 20, digits)); } else { Print("vector.CopyRates(%d,COPY_RATES_CLOSE) failed. Error ", symbols[i], GetLastError()); return; } } 也许这样更好: //--- 要计算的字符列表 string symbols[] = {"EURUSD", "GBPUSD", "USDJPY", "USDCAD", "USDCHF"}; int size =::ArraySize(symbols); //-----------------------------------------------矩阵和向量来获取价格 关闭 matrix rates_mx(InBars, size); vector close_vc; for(int i = 0; i < size; i++) { ::ResetLastError(); //--- 将收盘价输入矢量 if(close_vc.CopyRates(symbols[i], InTF, COPY_RATES_CLOSE, 1, InBars)) { //--- 将矢量插入时间序列矩阵中 rates_mx.Col(close_vc, i); ::PrintFormat("%d。%s:%d 收盘价已添加到矩阵中"。, i + 1, symbols[i],close_vc.Size()); //--- 输出向量的前 20 个值,以便调试 int digits = (int)::SymbolInfoInteger(symbols[i], SYMBOL_DIGITS); ::Print(VectorToString(close_vc, 20, digits)); } else { ::PrintFormat("vector.CopyRates(%s,COPY_RATES_CLOSE) failed. Error %d", symbols[i], ::GetLastError()); return; } } Rashid Umarov 2022.10.11 11:42 #50 Denis Kirichenko #:这里 可能有点误会:应该是这样的 谢谢,已更正 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这不是一个向量,而是一个矩阵,我有上面的代码
你必须自己解决,或者说服编译器。请阅读示例。
那么,如何从矩阵中获取一列呢?
使用 Col 可以从 矩阵 中取出一个向量。
你说的 "取出 "是什么意思?删除?
您可以使用 Col
你说的 "取出 "是什么意思?删除?
取出是指将它转换成可以使用的东西。
我在上面展示了我在使用 Col 时失败的代码,它是一个矩阵,而不是你写的矢量。
您需要休息一下,明天再重新阅读您在本网站上提出的所有问题。
谢谢您的关心!
在您的帮助下,大部分问题都得到了解决。
我会等到明天,也许您可以稍后再回答我的问题。
无人阅读,但愿意支持。我好像在机器学习主题里看到过你?如果是的话,你应该能理解文章中的内容。
这里 可能有点小错误:
应该是这样的
在"将时间序列复制到矩阵或向量 " 一节中还有一个小错误:
也许这样更好:
这里 可能有点误会:
应该是这样的
谢谢,已更正