麻烦帮看看这段matlab程序哪里出错了,跪谢A = load('E:\MATLAB\A.txt');A=sparse(A(:,1),A(:,2),ones(size(A,1),1)); %构造稀疏矩阵存储形式A=full(A); % 稀疏矩阵转m×n矩阵disp(A);for i=1:size(A,1) %转为对称矩阵 for
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 23:09:09
麻烦帮看看这段matlab程序哪里出错了,跪谢A = load('E:\MATLAB\A.txt');A=sparse(A(:,1),A(:,2),ones(size(A,1),1)); %构造稀疏矩阵存储形式A=full(A); % 稀疏矩阵转m×n矩阵disp(A);for i=1:size(A,1) %转为对称矩阵 for
麻烦帮看看这段matlab程序哪里出错了,跪谢
A = load('E:\MATLAB\A.txt');
A=sparse(A(:,1),A(:,2),ones(size(A,1),1)); %构造稀疏矩阵存储形式
A=full(A); % 稀疏矩阵转m×n矩阵
disp(A);
for i=1:size(A,1) %转为对称矩阵
for j=1:size(A,2)
if A(i,j)==1;
A(j,i)=1;
end
end
end
麻烦帮看看这段matlab程序哪里出错了,跪谢A = load('E:\MATLAB\A.txt');A=sparse(A(:,1),A(:,2),ones(size(A,1),1)); %构造稀疏矩阵存储形式A=full(A); % 稀疏矩阵转m×n矩阵disp(A);for i=1:size(A,1) %转为对称矩阵 for
% 错误显示 sparse 函数使用错误,下标必须为正值!
A = load('E:\MATLAB\A.txt'); % A的第1列,第2列里面有非负数!
A=sparse(A(:,1),A(:,2),ones(size(A,1),1)); %下面既然要转成非稀疏的,为啥还要这句呢?你是想将A的第1列,第2列作为下标值吧?用sub2ind即可
A=full(A); % 稀疏矩阵转m×n矩阵
disp(A);
for i=1:size(A,1) %转为对称矩阵 --> 其实很简单的,转置取最大值就可以了(方阵的话)
for j=1:size(A,2)
if A(i,j)==1;
A(j,i)=1;
end
end
end
可以改为:
A = load('E:\MATLAB\A.txt'); % load data
siz = max(max(A(:,[1 2]))); % matrix size
B = zeros(siz,siz);
ind = sub2ind(size(B),A(:,1),A(:,2)); % to sub
B(ind) = 1;
B = max(B,B'); % keep symmetric
不知道你A.txt是什么矩阵,你可以发到[email protected]邮箱。我能帮您调试一下。
简单猜想,是你构造稀疏矩阵有问题。
因为你的文本里有数据0,在做美赛吧兄弟