【问题标题】:Mathematica: How to insert Matrices into a bigger Sparse MatrixMathematica:如何将矩阵插入更大的稀疏矩阵
【发布时间】:2015-09-10 13:29:09
【问题描述】:

我为给定大小 n 创建了一个稀疏矩阵

mat = SparseArray[{Band[{1, 2}] -> U10, Band[{2, 1}] -> V10}, {n*n, n*n}]
For[j = 0, j < n - 1, j++, mat += SparseArray[{Band[{1, 1 + (n*(j + 1))}]->U01, Band[{1 + (n*(j + 1)), 1}] -> V01}, {n*n, n*n}]]

现在我想用一些 4x4 矩阵替换条目 U10、V10、U01 和 V01,以便保留原始结构

感谢您的帮助

【问题讨论】:

    标签: wolfram-mathematica sparse-matrix


    【解决方案1】:

    a SparseArray 不能将数组作为元素保存。您需要转换为普通数组,例如。

    mat=Normal@mat /. {U10->{{1, 2},{3,4}},U01->{{1, 0},{0, 1}},... }
    

    如果您想将其转换回稀疏数组:

    SparseArray[mat]
    

    你得到错误:

    SparseArray::rect: 位置 1 的矩形数组或规则列表

    因为你的数组不是矩形的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      相关资源
      最近更新 更多