【问题标题】:multiplication of 5 different size matrix in c ++c++中5个不同大小矩阵的乘法
【发布时间】:2013-11-12 16:20:45
【问题描述】:

我想在 C++ 中乘以 5 个矩阵(所有矩阵的大小都不一样),我能做什么? 我必须使用循环 5 次还是有像 matlab 那样的简单方法? 矩阵的大小是 第一个:1x4 第二:4x4 第三:4x4 第四:4x4 第 5 次:4x1

【问题讨论】:

  • 您可以创建一个 Matrix 类并提供operator*
  • 看看是否已经有一个库可用于表示矩阵。如果你这样做是为了上课/娱乐,你应该首先考虑一个小类的层次结构,也许是模板参数来指定矩阵大小
  • @user1158692:层次结构?什么层次结构?
  • @ArmenTsirunyan 可能一个基类和一个派生模板类,以允许运算符重载引用基类。
  • @user1158692:我真的认为这里不应该涉及继承。静态多态(模板)可以提供足够的通用性。

标签: c++ matrix


【解决方案1】:
  1. 编写一个函数,对任意大小的矩阵执行矩阵乘法(带有完整性检查)。
  2. 使用该函数四次,每次乘法一次。

或者,您可以为自己定义的类型矩阵定义 * 运算符,这样您就可以编写 a*b*c*d

【讨论】:

    【解决方案2】:

    您可以使用boost linear algebra 库,它定义了矩阵和向量类型,并与operator * 相乘。

    matrix<int>  m1(1,4);
    matrix<int>  m2(4,4);
    matrix<int>  m3(4,4);
    matrix<int>  m4(4,1);
    
    //... initialize your matrices here
    
    matrix<int> result = m1*m2*m3*m4;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      相关资源
      最近更新 更多