matlab内置文件中是否还有其他稀疏矩阵数据?

计算科学 matlab 稀疏矩阵 线性系统
2021-12-03 19:02:10

我想做一些解决大型稀疏线性系统的数值示例Ax=b我想使用一些来自 Maltab 本身的数据,因为这个实验可以随时使用 Matlab 轻松复制。例如,

load west0479.mat
A = west0479;
b = sum(A,2);
gmres(A,b);
bicgstab(A,b);

使用这些代码,我可以获得一个稀疏矩阵线性系统。我想问一下Matlab中是否还有其他一些稀疏矩阵数据?如果是这样,请给我一些例子。

3个回答

Matrix Market中有很多稀疏矩阵

测试数据的可视化存储库,用于数值线性代数算法的比较研究,包含来自各种应用的近 500 个稀疏矩阵,以及矩阵生成工具和服务。

将 Matrix Market 与MM_TO_MSM 结合使用:Matrix Market File to MATLAB Sparse Matrix

MM_TO_MSM,一个 MATLAB 库,它读取存储在 Matrix Market 文件中的信息,并将其设置为 MATLAB 稀疏矩阵。

Matrix Market 包括用于读取/写入 Harwell-Boeing 文件的 Matlab 程序

Berkeley Benchmarking and Optimization (BeBOP) Group 开发了一个库和独立实用程序,用于在 Harwell-Boeing、Matrix Market 和 MATLAB 稀疏矩阵格式之间进行转换。

这将允许您从https://math.nist.gov/MatrixMarket/data/Harwell-Boeing/导入 Harwell-Boeing 矩阵集合

A = bucky(), 例如。  

以下是教授的回答。

不,检查这一点很简单。west0479 位于保存所有此类示例的 demos 文件夹中。

>> which west0479.mat
C:\Program Files\MATLAB\R2019b\toolbox\matlab\demos\west0479.mat

我们可以获取此文件夹中可能包含稀疏矩阵的 .mat 文件列表。

>> files = dir(fullfile(matlabroot,'toolbox','matlab','demos','*.mat'))

files = 

  41×1 struct array with fields:

    name
    folder
    date
    bytes
    isdir
    datenum

这些文件中的每一个都可以加载并检查稀疏变量。让我们从这些检查中创建一个数组并使用它来索引文件列表,因此只返回包含稀疏矩阵的文件:

>> files(arrayfun(@(f) any(structfun(@issparse,load(fullfile(f.folder,f.name)))),files))

ans = 

  struct with fields:

       name: 'west0479.mat'
     folder: 'C:\Program Files\MATLAB\R2019b\toolbox\matlab\demos'
       date: '14-Mar-2004 15:32:24'
      bytes: 12580
      isdir: 0
    datenum: 7.3202e+05

west0479.mat是唯一的。