PDA

查看完整版本 : 有关数组的小问题,请教?


yjy7604
2008-11-27, 10:46
我想得到OPR数组中全为0的列,代码如下,结果报错.
opr=[0 1 1 0 0 0 0 0;
0 0 0 1 0 0 0 0;
0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1;
0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 1;
0 0 0 0 0 0 0 0];
[n,m]=size(opr);
for j=1:m
if opr(:,j)==0
a(j)=j;
end
a(j)
end
错误提示:
??? Index exceeds matrix dimensions.

guofeng0108
2008-11-27, 14:44
吧a(j)改成a;
其实可以先给a赋值;
然后令a(j)=1来确定结果的,那样比较直观

yjy7604
2008-11-28, 09:59
不太对,我得自己在试,不过还是谢谢你!

zhangyanchao
2008-11-30, 14:15
opr=[0 1 1 0 0 0 0 0;
0 0 0 1 0 0 0 0;
0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1;
0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 1;
0 0 0 0 0 0 0 0];
[n,m]=size(opr);
i=0;
for j=1:m
if all(opr(:,j)==0)
i=i+1;
a(i)=j;
end;
end;
a
如此就OK了!

zhyanchao
2008-11-30, 14:32
opr=[0 1 1 0 0 0 0 0;
0 0 0 1 0 0 0 0;
0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1;
0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 1;
0 0 0 0 0 0 0 0];
[n,m]=size(opr);
i=0;
for j=1:m
if all(opr(:,j)==0)
i=i+1;
a(i)=j;
end;
end;
a