急求帮改程序将矩阵原本的常数改为3*3矩阵元素(P只看第一個,P有誤已更正)
本帖最后由 真龍虎王 于 2010-3-4 09:08 编辑原本题目: 新增
NO GO TO P
1 0 1 7
2 1 2 7
3 1 4 1
4 2 3 6
原程序:
NO=;
GO=;
TO=;
k=zeros(length(NO),length(NO));
a=sub2ind(size(k),NO,TO);
k(a)=-1;
for i=1:length(NO)
s=i;
while s>=2
s=find(TO==GO(s));
k(NO(s),(TO(i)))=-1;
end
end
答:
K= TO = 1 2 3 4 =[-1 -1 -1 -1;0 -1 -1 0;0 0 0 -1;0 0 -1 0]
NO[ ] 1 [-1 -1 -1 -1
2 0 -1 -1 0
3 0 0 0 -1
4 0 0 -1 0 ]
现在想改多看一个矩阵P 矩阵大小跟NO相同
如 P=
题目想改为
看NO找TO值再看GO值时顺便看P值
原本K是放入-1想改为当:
PS:只看NO找TO时找到的第一个P值如果GO不是0那下一个的P不使用
只用第一次找到的P
P=7 -1改为放入[-1 0 0;0 -1 0;0 0 -1]
=6 -1改为放入[-1 0 0;0 0 0;0 0 -1]
=5 -1改为放入
=4 -1改为放入[-1 0 0;0 -1 0;0 0 0]
=3 -1改为放入
=2 -1改为放入
=1 -1改为放入[-1 0 0;0 0 0;0 0 0]
那原本的矩阵的零元素改為零3*3矩阵=
目前卡关是卡在k矩阵大小是会因为P而变以及-1要改放入矩阵
答案会是
-1 0 0 -1 0 0 -1 0 0 -1 0 0
0-1 0 0-1 0 0 0 0 0 0 0
0 0-1 0 0-1 0 0-1 0 0 0
0 0 0 -1 0 0 -1 0 0 0 0 0
0 0 0 0-1 0 0 0 0 0 0 0
0 0 0 0 0-1 0 0-1 0 0 0
0 0 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 0 0 0 0 0 0 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 0 0 0 0 0 0-1 0 0 0
页:
[1]