matlab 简单问题

2025-01-20 16:22:16
推荐回答(1个)
回答1:

这个程序比较简单,下面从第一行说起。
第一行,定义函数脚本,输出为B,输入为A,函数名为es12bis

第二行,将B赋值为A
第三行,计算矩阵B的行数nr和列数nc
第四行,设定最大值初始值为负无穷
第五行,设定最大值初始坐标为空矩阵
第六行,设定最小值初始值为正无穷
第七行,设定最小值初始坐标为空矩阵
第八行,循环结构,对B矩阵的每一行循环
第九行,循环结构,在对B矩阵的每一行循环的条件下再对B矩阵的每一列循环
注意,以上两层循环结构就是为了取出B矩阵中的每一个元素
第十至十三行,判断条件,判断此时所取到的元素是否比现在的最大值大,如果是,则更新最大值,并更新此最大值在B矩阵中的位置,i为行号,j为列号。(这就是为什么最大值设定为负无穷的原因,因为在第一次比较时,B中的任意一个元素都会比负无穷大,这样就可以将初始最大值更新为B矩阵中的值,然后再进行循环时,就可以计算出B矩阵中的最大值,下面求最小值同理。)
第十四至十七行,判断条件,判断此时所取到的元素是否比现在的最小值小,如果是,则更新最小值,并更新此最小值在B矩阵中的位置,i为行号,j为列号。
以下三行是常用的交换元素值的方法。temp用于临时保存数据。
第十五行,让temp临时保存B中的最大值
第十六行,将B中最大值的元素赋值为B中的最小值
第十七行,将B中最小值的元素赋值为temp中所保存的B中的最大值