【问题标题】:Matrices with not constant values [duplicate]具有非恒定值的矩阵[重复]
【发布时间】:2015-09-14 13:18:20
【问题描述】:

我正在尝试制作一个使用二维矩阵的程序。 问题是为了避免有限制,我不知道如何声明矩阵,因为维度不是恒定的。我看到了如何实现具有非恒定维度的向量,创建对象。但是对于矩阵什么都没有...我该如何解决?

【问题讨论】:

标签: c++


【解决方案1】:

如果您知道如何处理可变维度向量,您已经可以解决您的问题:

例如您可以存储 m x n 矩阵 A = (a_1, .., a_n) 的列向量向量,或行向量 A^t = (a_1, .., a_m) 的向量。

或者您可以将此类矩阵的 m x n 个元素顺序存储到单个向量中。 您只需要对元素进行一些枚举即可将元素 a_ij 的索引 i 和 j 转换为单个索引 k。

例如逐行枚举:

  • k = f(i,j) = [m (i-1) + (j-1)] + 1 = m (i-1) + j

如果 i 来自 {1,..,m},j 来自 {1,.., n} 和 k 来自 {1,..,mn}。

反之,从 k 计算 i 和 j 是:

  • i = g_1(k) = ((k-1) div m) + 1

  • j = g_2(k) = k - m (i-1) = k - m (g_1(k)-1)

如果您不关心原则上是如何完成的,而只需要一些工作代码,您应该搜索一些 C++ 矩阵库。

【讨论】:

  • 非常感谢!你解决了我的问题
猜你喜欢
  • 2015-10-28
  • 1970-01-01
  • 2011-08-16
  • 2016-09-24
  • 1970-01-01
  • 2011-09-16
  • 2017-05-27
  • 2017-11-07
  • 1970-01-01
相关资源
最近更新 更多