写了个通用的!
只要调用下就可以用了!
程序代码都有!
有用请采纳!
function [spdata,spdata1]=myfun(data)
%spdata就是你要的稀疏矩阵
[m,n]=size(data);
k=1;
for i=1:m
for j=1:n
if data(i,j)~=0
spdata(k,1)=i;
spdata(k,2)=j;
spdata(k,3)=data(i,j);
k=k+1;
end
end
end
%向量化
spdata1=spconvert(spdata);
运行过程
>> A=[0 5 0 10 0 0;0 0 6 0 11 0;3 0 0 7 0 12;1 4 0 0 8 0;0 2 5 0 0 9];
>> [spdata,spdata1]=myfun(A)
spdata =
1 2 5
1 4 10
2 3 6
2 5 11
3 1 3
3 4 7
3 6 12
4 1 1
4 2 4
4 5 8
5 2 2
5 3 5
5 6 9
spdata1 =
(3,1) 3
(4,1) 1
(1,2) 5
(4,2) 4
(5,2) 2
(2,3) 6
(5,3) 5
(1,4) 10
(3,4) 7
(2,5) 11
(4,5) 8
(3,6) 12
(5,6) 9