【问题标题】:How to perform sum operation to 2X2 matrix in Flutter/dart如何在 Flutter/dart 中对 2X2 矩阵进行求和运算
【发布时间】:2022-08-15 18:19:33
【问题描述】:

在我的飞镖代码中,我有一个 2X2 矩阵,像这样

    List<List<int>> a = 
  [
    [10,   2],
    [2,  2],
  ];
  
      List<List<int>> b = 
  [
    [1,   2],
    [2,  2],
  ];

所以,我想在不使用任何预定义函数的情况下对这两个矩阵执行求和运算。

我想要的结果,像这样

List<List<int>> c = 
      [
        [11,   4], // 10+1   2+2
        [4,  4],   // 2+2    2+2
      ];
  • 不使用预定义函数的原因是什么?你对它的定义是什么?从技术上讲,+ 也是我认为的预定义函数。至少size()add() 是。不使用函数是完全不可能的
  • 当您有api.flutter.dev/flutter/vector_math/Matrix2-class.html 供您使用时,为什么要浪费脑细胞?

标签: flutter dart


【解决方案1】:

这是求和 2D 矩阵的一般答案

List<List<int>> c=[];
int minSize=a.length>b.length?b.length:a.length;

 for(int i=0;i<minSize;i++){
  List<int> temp=[];
  int minListSize=a[i].length>b[i].length?b[i].length:a[i].length;

   for(int j=0;j<minListSize;j++){
     temp.add(a[i][j]+b[i][j]);
    }
  c.add(temp);
}

【讨论】:

  • min() 也是一个预定义的函数。
  • @shirshshukla 对不起.. 我编辑了我的评论
【解决方案2】:

好吧,如果您事先知道它们都是 2x2 矩阵,那么这种简单的方法是一个简单的解决方案,我认为它甚至在性能方面胜过其他所有解决方案。

List<List<int>> c =
[
  [a[0][0] + b [0][0], a[0][1] + b [0][1]],
  [a[1][0] + b [1][0], a[1][1] + b [1][1]]
];

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多