【发布时间】:2012-06-20 22:03:08
【问题描述】:
我可以使用什么命令在 MATLAB 中将稀疏三元组转换为稀疏矩阵?我一直在尝试这个:B=st_to_msm(A),其中A 是我从“.dat”文件中读取的稀疏三元组,B 只是一些变量。
不过,它对我不起作用。我想知道如何修复它,或者是否有其他命令可以进行转换。
【问题讨论】:
标签: matlab matrix sparse-matrix
我可以使用什么命令在 MATLAB 中将稀疏三元组转换为稀疏矩阵?我一直在尝试这个:B=st_to_msm(A),其中A 是我从“.dat”文件中读取的稀疏三元组,B 只是一些变量。
不过,它对我不起作用。我想知道如何修复它,或者是否有其他命令可以进行转换。
【问题讨论】:
标签: matlab matrix sparse-matrix
MATLAB 只有 2D 稀疏矩阵,因此 3D 寻址不适用于稀疏矩阵。
您可能需要检查N-dimensional sparse arrays in MATLAB Central File Exchange。
【讨论】:
st_to_msm 的代码是http://people.sc.fsu.edu/~jburkardt/m_src/st_to_msm/st_to_msm.m
[ nrow, ncol, nnzero ] = st_header_read ( input_file );
[ row, col, a ] = st_data_read ( input_file, nrow, ncol, nnzero );
base0 = 0;
base1 = 1;
row = st_rebase ( base0, base1, nnzero, row );
col = st_rebase ( base0, base1, nnzero, col );
b = sparse ( row, col, a, nrow, ncol, nnzero );
换句话说,它从文件中读取维度和 3 个向量,并将它们用作sparse 函数的参数。我怀疑你的A 由这 3 个向量组成,row、col、a。查看sparse 的文档了解更多详情。
【讨论】: