求助利用Matlab编程:矩阵中每行各取一个元素,使其和最小,并给出该最短路径的坐标
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/06 00:17:21
求助利用Matlab编程:矩阵中每行各取一个元素,使其和最小,并给出该最短路径的坐标
求助利用Matlab编程:矩阵中每行各取一个元素,使其和最小,并给出该最短路径的坐标
求助利用Matlab编程:矩阵中每行各取一个元素,使其和最小,并给出该最短路径的坐标
分析:矩阵中每行各取一个元素,使其和最小,那么如果每行都取的是该行的最小值的话,那么最后的和肯定也是最小的.
所以只需找到每行的最小值即可.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>> a=magic(10)
a =
92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59
>> [m,n]=min(a')%%min函数是按列搜索最小值,所以对a进行转置后搜索就是按行搜索
m =
1 7 4 3 2 17 5 6 10 11%%m是每行的最小值
n =
3 3 1 5 4 1 2 2 1 1%%n是最小值对应的列,最小值对应的行其实就是数组n的元素索引值.
即最小值对应的坐标为:(1,n(1)) (2,n(2)) (3,n(3)) (4,n(4)).