真龍虎王 发表于 2010-2-24 14:21:41

2010/03/02 求高手相助Matlab程序修改求助

本帖最后由 真龍虎王 于 2010-3-2 10:44 编辑

恳请版上英雄能帮助小弟
原本题目:
   NO            GO          TO
    1               0             1
    2               1             2
    3               1             4
    4               2             3
想表达
(1)NO=1再看TO=1找GO=0当GO=0表示结束
所以K=          TO    =            1       =[-1];
             NO[   ]         1   [ -1]
(2)NO=2再看TO=2找GO=1当GO不等于零 看跟GO一样数字的TO
               看TO=1找GO=0当GO=0表示结束
所以K=          TO    =             1    2    =[-1 -1;0 -1];
             NO[   ]         1   [-1   -1      
                                    2       0   -1]
(3)NO=3再看TO=4找GO=1当GO不等于零 看跟GO一样数字的TO
               看TO=1找GO=0当GO=0表示结束
所以K=          TO    =             1    2   3    4         =[-1 -1 0 -1;0 -1 0 0;0 0 0 -1;0 0 0 0];
             NO[   ]         1   [-1   -1   0   -1
                                    2       0   -1   0    0
                                    3       0    0   0   -1
                                    4       0    0   0    0 ]
(4)NO=3再看TO=3找GO=2当GO不等于零 看跟GO一样数字的TO
               看TO=2找GO=1当GO不等于零 看跟GO一样数字的TO
               看TO=1找GO=0当GO=0表示结束
所以K=          TO    =             1    2   3    4         
             NO[   ]         1   [-1   -1    -1   -1
                                    2       0   -1    -1    0
                                    3       0    0   0   -1
                                    4       0    0    -1    0 ]
程序:
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

现在想改多看一个矩阵P    矩阵大小跟NO相同
如 P=
题目想改为
看NO找TO值再看GO值时顺便看P值
原本K是放入-1想改为当:
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 -1;0 0]
=3    -1改为放入
=2    -1改为放入
=1    -1改为放入[-1;0;0]
目前卡关是卡在k矩阵大小是会因为P而变以及-1要改放入矩阵
页: [1]
查看完整版本: 2010/03/02 求高手相助Matlab程序修改求助

招聘斑竹