mengmeng-erni 发表于 2011-7-1 18:41

如何把文本文件中的稀疏矩阵输入到matlab中

求帮助,如何把文本文件(.txt)中的矩阵元素如下(行标,列标,元素),输入matlab中形成矩阵
1 11.9316064083150e+06
3 1 -1.0216565407790e+05
4 1 -3.5568909942140e+04
5 1 -1.0695879918790e+05
6 1 -1.6583522345160e+05
7 1 -7.1784525340250e+02
8 1 -1.0695879918790e+05
9 1 -5.2546272549110e+03
2 21.0000000000000e+00
3 31.9314686157570e+06
4 31.6578725105670e+05
5 3 -1.0695879918800e+05
6 33.5568909942150e+04
8 38.8998505440940e+04
9 3 -1.8286539894750e+06
4 45.2792612281090e+08
5 48.1651795296010e+05
6 41.2131131189280e+07
8 4 -2.5441449598180e+06
9 4 -1.2498769196930e+05
5 52.4658226709700e+08
6 5-5.2546272549110e+03
7 5 -5.3433972325360e+04
8 5 -5.2515091336170e+05
9 53.5568909942140e+04
6 6 -4.3494371809230e+04
7 6 -3.5544931832530e+04
8 65.4925592696980e+06
9 6 -1.8572438597490e+06
7 7 7.7688713061220e+06
8 7 -1.8286539894750e+06
9 7 -8.8998505440940e+04
8 8 -1.2498769196950e+05
9 8 -1.0223457358720e+05
9 9 -1.6673493328340e+05
先谢谢

ChaChing 发表于 2011-7-2 00:46

回复 1 # mengmeng-erni 的帖子

矩阵若不大的话, 这样较清楚clc; clear; aa=load ('zzz.txt');
nrow=max(aa(:,1)); ncol=max(aa(:,2)); nn=length(aa(:,3));
bb=zeros(nrow,ncol);
for k=1:nn, bb(aa(k,1),aa(k,2))=aa(k,3); end矩阵若大的话, 优化去for loopclc; clear; aa=load ('zzz.txt');
nrow=max(aa(:,1)); ncol=max(aa(:,2)); bb=zeros(nrow,ncol);
bb((aa(:,2)-1)*nrow+aa(:,1))=aa(:,3);

rocwoods 发表于 2011-7-3 13:59

doc spconvert

ChaChing 发表于 2011-7-3 14:50

回复 3 # rocwoods 的帖子

稀疏矩阵个人很少使用, 昨天没仔细搜索到相关函数, 谢谢告知!
刚看了下, LZ或许是要这函数
页: [1]
查看完整版本: 如何把文本文件中的稀疏矩阵输入到matlab中