求助利用Matlab编程:矩阵中每行各取一个元素,使其和最小,并给出该最短路径的坐标
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 01:40:29
![求助利用Matlab编程:矩阵中每行各取一个元素,使其和最小,并给出该最短路径的坐标](/uploads/image/z/6366884-68-4.jpg?t=%E6%B1%82%E5%8A%A9%E5%88%A9%E7%94%A8Matlab%E7%BC%96%E7%A8%8B%EF%BC%9A%E7%9F%A9%E9%98%B5%E4%B8%AD%E6%AF%8F%E8%A1%8C%E5%90%84%E5%8F%96%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%2C%E4%BD%BF%E5%85%B6%E5%92%8C%E6%9C%80%E5%B0%8F%2C%E5%B9%B6%E7%BB%99%E5%87%BA%E8%AF%A5%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84%E7%9A%84%E5%9D%90%E6%A0%87)
求助利用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)).