matlab程序调式啊.随机给定一个元素为0或1的5阶方阵,设定1为可以通过,0为不能通过,不允许走斜线,给出一条从左下角进入矩阵,从右上角走出矩阵的路线.如找不到此路线,则重新给定方阵function
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/18 10:36:09
matlab程序调式啊.随机给定一个元素为0或1的5阶方阵,设定1为可以通过,0为不能通过,不允许走斜线,给出一条从左下角进入矩阵,从右上角走出矩阵的路线.如找不到此路线,则重新给定方阵function
matlab程序调式啊.
随机给定一个元素为0或1的5阶方阵,设定1为可以通过,0为不能通过,不允许走斜线,给出一条从左下角进入矩阵,从右上角走出矩阵的路线.如找不到此路线,则重新给定方阵
function m_main(a)
move=[-1 0;0 1];
if a(5,1)==0||a(1,5)==0
disp('重新给定矩阵')
else
a(5,1)=2;
stack(1,1)=5;
stack(1,2)=1;
stack(1,3)=1;
top=1;
while top~=0
i=stack(top,1);
j=stack(top,2);
k=stack(top,3);
while k
matlab程序调式啊.随机给定一个元素为0或1的5阶方阵,设定1为可以通过,0为不能通过,不允许走斜线,给出一条从左下角进入矩阵,从右上角走出矩阵的路线.如找不到此路线,则重新给定方阵function
function stack = myroad(A)
move = [-1,0;0,1]; % 移动方向
if A(5,1) == 0 || A(1,5) == 0
disp('重新给定矩阵0');
else
stack(1,1) = 5;
stack(1,2) = 1;
stack(1,3) = A(5,1);
top = 1;
while top ~= 0
i = stack(top,1);
j = stack(top,2);
k = stack(top,3);
if k = 1 & g =1 & h 0
top = top + 1;
stack(top,1) = g;
stack(top,2) = h;
stack(top,3) = A(g,h);
else
stack(top,3) = stack(top,3) + 1;
end
if g == 1 & h == 5
disp('find outway');
break;
else
end
else
stack(top,3) = stack(top,3) + 1;
end
end
end
例子:
>> A
A =
0 1 0 0 1
1 0 1 0 1
1 0 0 1 1
1 1 1 1 0
1 0 0 1 0
>> stack = myroad(A)
find outway
stack =
5 1 1
4 1 2
4 2 2
4 3 2
4 4 1
3 4 2
3 5 1
2 5 1
1 5 1