最短路径问题代码出现矩阵维度不一致,更改之后报错无法执行赋值,因为左侧的索引与右侧的大小不兼容
clc;clear;
A{1} = [5,3];
A{2} = [1,3,6;8,7,6];
A{3} = [6,8;3,5;3,3;8,4];
A{4} = [2,2;1,2;3,3];
A{5} = [3,5;5,2;6,6];
A{6} = [4;3];
B{1} = A{6};
cnt = 5;
for i = cnt:-1:6
[B{i},index] = min(A{i}+B{i+1}',[],5);
p{i} = index;
end
path(1) = P{1}
for i = 5:cnt
path(i) = p{i}(path(i-1));
end
disp("最短距离")
B{1}
disp("最短路径")
path
无法执行,无法执行赋值,因为左侧的索引与右侧的大小不兼容
我的解答思路和尝试过的方法:更改循环次数,但是无法达到解题要求
循环体内path(i) = p{i}(path(i-1)); 查看一下右侧赋值长度是否等于左侧长度为1的单变量