麻烦帮看看这段matlab程序哪里出错了,跪谢

A=load('E:\MATLAB\A.txt');A=sparse(A(:,1),A(:,2),ones(size(A,1),1));%构造稀疏矩阵存储形式A=full... 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
展开
Carrot_hy
2012-02-12 · TA获得超过1836个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:225万
展开全部
% 错误显示 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
百度网友fe7dceac7
2012-02-12 · TA获得超过831个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:416万
展开全部
不知道你A.txt是什么矩阵,你可以发到shenhong.youao@yahoo.com邮箱。我能帮您调试一下。
简单猜想,是你构造稀疏矩阵有问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jacklai52517
2012-02-11 · TA获得超过635个赞
知道答主
回答量:383
采纳率:0%
帮助的人:258万
展开全部
因为你的文本里有数据0,在做美赛吧兄弟
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式