小y最近一直在出差,由于一直在外也没设备,也没有时间看现控的内容,一直想写观测器的博客也只能暂时搁置。
**但是生命不息,学习不止。**小y每次使用matlab需要for循环某个矩阵就会弹出变量似乎要更改脚本中每个循环迭代的大小
,还会提示对速度有影响。
matlab本来就是矩阵实验室,没必要使用for循环处理矩阵,于是y想,有没有好的方法处理矩阵。
首先,做实验1:
它会按顺序打印1~5的整数,如果我们使用1:8
它的结果应该是1到8的整数,试验如下:
预测正常那么我们可以理解:的作用就是相当于数学的
如果我们中间在来组:那结果会怎么样呢?没有实践就没有发言权,试验如下:
打印结果是1、3、5、7,有点像公差为2的等差数列,用高中的知识就是
应该没错吧,自己也推了一遍,高中知识快忘完啦。
那么如果1:3:8
的话及公差为3的等差数列。获得的答案应是1、4、7
试验如下
结果与猜测相符。
假设我有个图片长成
我想获得它第一个像素点及1,那么我该怎么办呢?使用A(1)会得出第一个像素点吗?
试验是检验真理的唯一标准。
是对的进行验证,如果我想获得第一行第二列这个像素点2会是A(2)吗?进行试验:
发现他是第二行第一列的的像素点,假设下如果是A(3)的话我们会得到第三行第一列的的像素点及7。进行试验如下:
此时y有个大胆的想法,如果A(2,2)答案会不会是第一行第二列的值及5,进行试验。
预测成功,那A(3,3)及是9了,验证结果如下
接下来我们来认识size
函数,这个函数会获得矩阵的行列,试验1如下
试验2验证
试验3
那么我们尝试做如下试验,如果C(1)是不是矩阵的行呢及X,试验结果如下:
合适!于是大胆猜测C(2)=Y=4试验结果如下
成立!
那么从返回值观察size返回了3和4,3是第一列4是第二列,那C(1)=3,C(2)=4。
接下来小y在想,如果将一个图片降采样的话,会不会使用矩阵算法比使用双重for-end
会快。
首先我们尝试将矩阵自动打印。从我们上面的试验不难猜出
得出正确打印,如果隔行隔列一打印呢?
好了我们成功的使用矩阵隔行隔列一打印。那么我们接下来看重点,处理图片速度会不会差距很大?
首先使用for循环。
运行了两次都在1.3s左右。
接下来使用矩阵处理
运行完以后y沉默了。感觉结果不对差距也太小了,我在拿个大图试试。
这个图大,我们测试后在2.7-5秒之间
这个运行时间在2.6-4.2秒之间。
算下效率呗。如果标准是1秒处理完毕的话,那for循环的车牌处理效率是74%
矩阵的处理速度是87%
这么看矩阵的效率是比for循环高。
那么大图的处理效率再看下,首先还是观察for循环的效率是34%。
矩阵的效率是38%
怎么说呢半斤八两吧,如果非要找个好的方法,那矩阵确实好点,也就是矬子里面拔将军。文章来源:https://www.toymoban.com/news/detail-410796.html
有人看到我在用车牌做图像处理,那么接下来在闲暇时间我打算完成matlab图像识别的教程,代码都是这样逐行解释的。文章来源地址https://www.toymoban.com/news/detail-410796.html
到了这里,关于羽翮已就之图像处理之matlab优化for循环的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!