【发布时间】:2016-09-02 16:00:14
【问题描述】:
我有一个稀疏矩阵文件,其中包含 779641 行。我将文件命名为“file_matrix2.dat”。文件几行示例如下:
0 547 1
1 547 1
2 539 0.500000
2 540 0.500000
3 512 0.333333
3 515 0.333333
我想将这个稀疏矩阵文件导入 matlab。文件大小为 16MB。文件中包含的完整矩阵有 237017 行和相等的列数。要导入这个稀疏矩阵,我使用以下命令:
load ('C:\Users\Dhan\Desktop\file_matrix2.dat')
and
H=spconvert(file_matrix2)
然后显示错误,即:
"??? Error using ==> sparse
Index into matrix must be positive.
Error in ==> spconvert at 53
S = sparse(D(:,1),D(:,2),D(:,3));"
请建议我解决这个问题。 提前谢谢...
【问题讨论】:
-
它来自 c 吗? matlab 从 1 获取索引。我猜
sparse(D(:,1)+1,D(:,2)+1,D(:,3))会工作 -
是的,我用 C++ 创建了这个文件..我会试试看..
-
在每个行和列位置添加一个应该可以工作。请记住,MATLAB 从 1 开始索引。
-
谢谢 Dohyun 先生和 rayryeng 先生。在每行和每列加 1 后,它可以完美运行..
标签: matlab matrix sparse-matrix