【问题标题】:Writing a matrix as a structure array in Matlab在 Matlab 中将矩阵写为结构数组
【发布时间】:2014-07-16 03:11:58
【问题描述】:

首先我要说我绝不是程序员,我很困惑。我的讲师说过,将矩阵、Matlab 数组作为结构编写通常很有用。我认为这是为了节省空间而不是存储零?我无法在 Matlab 中实现这一点。

如果给我一个矩阵:

a = [1 0 3; 0 5 6; 7 0 0]

我怎样才能把它写成一个结构数组?

非常感谢任何帮助。

【问题讨论】:

  • 如果你想创建一个只存储单个矩阵的结构,那是无稽之谈。仅存储单个矩阵的单个结构的额外开销没有用。 结构数组是什么意思?您是否只想将元素单独存储为单独的结构字段并拥有单个元素的数组?
  • 也许您正在寻找sparse 矩阵而不是结构
  • 这正是我要找的,我不知道这个词。感谢您的链接!
  • @beaker - 好的......现在这完全有道理。我也跳过了“节省空间”部分。我应该知道它是一个稀疏矩阵。
  • 很好,很高兴我能帮助你。 @rayryeng - 这对我来说也是如此;初读时似乎不重要的一个小词却成了关键。

标签: matlab


【解决方案1】:

您正在寻找的概念是sparse 矩阵。

这不仅可以减少零元素比例足够高的矩阵所需的存储空间,还可以加快对这些矩阵的运算。

您可以将现有的完整(即非稀疏)矩阵 A 转换为稀疏矩阵,如下所示:

S = sparse(A);

其他创建稀疏矩阵的方法可以在here找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 2013-01-03
    • 2017-08-25
    • 2021-08-28
    • 1970-01-01
    相关资源
    最近更新 更多