Matlab 的矩阵操作总让人头大?CS1674 的这份作业代码就挺有意思的,专注在向量化 vs 循环的效率差异上,写法简单,逻辑清晰,挺适合拿来当学习范例的。是用randn
生成高斯分布的随机向量那段,还真有点意思。
向量化的部分算是这段代码的亮点。用size
获取维度,再用for
循环加 1,再来一遍不用循环的向量加法,两者计时对比一目了然,效率差距蛮直观的。新手也能立马 get 到 Matlab 推荐向量化的理由。
还有打印输出的细节也讲得比较清楚,比如不同的打印方式、怎么用tic
/toc
做性能对比,都是实战派的小技巧。你要是刚上手 Matlab、正好卡在怎么高效大向量,不妨看看这段。
另外,相关链接也挺有料的,比如优化 Matlab 代码的向量化方法、二维混合高斯分布的期望最大化算法,都能帮你更深入理解向量运算背后的逻辑。
如果你平时写 Matlab 老是写for
循环,不妨试试用这种方式练练手,效率、可读性都会提升不少哦~