Matlab 矩阵的for循环不起作用

Matlab 矩阵的for循环不起作用,matlab,debugging,matrix,Matlab,Debugging,Matrix,假设我有一个矩阵[1 2 3 5;1 3 4 5] 每行代表一条路径,每列代表该路径的节点。 例如:对于行1:1-2-3-5是具有节点1,2,3,5(其中1是开始节点,5是结束节点)的路径。 我想考虑弧之后的弧和弧。 例如:我想考虑(1,2)和(2-3),并给它分配一个成本。p> 我写了一个代码,但它显示了一个错误 for kkp = 1:size(R{ip},1) % R{ip} is my path matrix for jjp = 1:size(R{ip},2)-1

假设我有一个矩阵
[1 2 3 5;1 3 4 5]

每行代表一条路径,每列代表该路径的节点。
例如:对于行
1
1-2-3-5
是具有节点
1
2
3
5
(其中
1
是开始节点,
5
是结束节点)的路径。
我想考虑弧之后的弧和弧。
例如:我想考虑<代码>(1,2)和<代码>(2-3),并给它分配一个成本。p> 我写了一个代码,但它显示了一个错误

for kkp = 1:size(R{ip},1) % R{ip} is my path matrix
    for jjp = 1:size(R{ip},2)-1
        for iip = 1:size (R{ip,2} -2)
            up = R{ip}(kkp,jjp);
            vp = R{ip}(kkp,jjp+1);
            wp =  R{ip}(kkp,jjp+2);
            cost1 = wt(up,vp); %wt(i,j) is a cost matrix that i already inputed.
            cost 2 = wt(vp,wp);
        end
    end
end

问题中代码的
3行
要么是打字错误,要么是您的问题:

for iip = 1:size (R{ip,2} -2)
应该是

for iip = 1:size(R{ip},2) -2  
此外,您从不使用
iip
。因此,您的示例中的第6行应该是:

wp =  R{ip}(kkp,iip+2);

错误消息是什么?您不需要三个嵌套循环!将外部索引(路径数,
ip
)从1循环到numel(R),将内部索引(kkp)从1循环到numel(R{ip})-2,然后设置iip=kkkp+1,jjp=kkp+2,并像您所做的那样计算路径成本。并修复
cost2=…
中的空格。我已进行了更正,但仍显示错误。我的成本2输出为零,但这是不对的。我的wt矩阵是:wt=[0240;1053;4505;0350];因此,如果路径1-2-3-4的成本1应该是2,成本2应该是5(对于2-3)和5(对于3-4)。你能把你的问题变成一个问题吗?这些调试问题往往会很快失控,因为您没有显示整个代码,所以仍然完全不清楚到底发生了什么。例如,在这里,我们只能猜测
up
yp
wp
,我们不知道单元格
R
——所有这些都可能会引起人们的兴趣。@abc:请参阅我上面的评论,但也请注意:您是否收到了实际的matlab
错误消息
——还是不是您期望的结果?