MATLAB学习笔记3
1. 函数与脚本
自定义函数:用户可以创建自己的函数来进行特定的计算或操作。函数定义的基本格式为function [输出]=函数名(输入),例如 function [sum, minus] = my_func(a, b),sum=a+b; minus=a-b; end。
匿名函数和内联函数:匿名函数使用@(args) expression的形式,内联函数使用inline('string')的形式,它们适用于简单的、单行的函数定义。
脚本文件:脚本是一种可执行的MATLAB代码文件,通常用于自动执行一系列操作。脚本文件可以直接从MATLAB命令窗口运行,或者在其他函数中调用。
函数参数:函数参数可以是标量、向量、矩阵或者更复杂的数据结构。在函数内部,参数可以被读取和修改,但不会影响调用环境中的原始变量值。
函数返回值:函数可以返回多个输出参数,例如 function [sum, product] = calculate(x, y),sum=x+y; product=x*y; end。
递归函数:递归函数是在函数体内调用自身来解决问题的一种方法。递归需要设定终止条件以避免无限调用。例如,计算阶乘的递归函数。
2. 数据可视化与绘图基础
二维绘图:使用plot函数可以绘制二维数据,如 plot(x, y) 会生成一个简单的线图。还可以添加标题、坐标轴标签以及图例。
三维绘图:surf和mesh函数可用于绘制三维表面图和网格图。例如,通过[X, Y] = meshgrid(x, y); Z = X.^2 + Y.^2; surf(X, Y, Z) 创建三维曲面图。
多图绘制:subplot函数允许在一个窗口内分区域绘制多个图,如 subplot(2, 2, 1) 会在2x2的图形布局的第1个位置绘制图形。
图形属性设置:可以调整线宽、颜色、标记点样式等图形属性来增强图形的表现力。例如,plot(x, y, 'r--') 会使用红色虚线绘制曲线。
图形保持与覆盖:hold on命令用于在同一图中连续绘制多个图形,hold off则结束此模式。
交互式绘图:ginput函数可以让用户通过鼠标点击图形界面获取坐标数据,常用于数据标注或选择特定点。
3. 扩展学习与应用实例
数字滤波技术:MATLAB实现数字滤波技术的方法之一是通过设计滤波器,如butter(4, 0.3)创建一个四阶巴特沃斯低通滤波器,然后使用filter函数将滤波器应用于数据。
元胞自动机原理及实现:元胞自动机是一种离散模型,用于模拟复杂系统的行为。在MATLAB中,可以使用循环和条件语句来实现元胞自动机的规则,并通过图形展示其演化过程。
图像处理技术:MATLAB的图像处理工具箱提供了大量的函数来读取、显示和处理图像。例如,使用imread函数读取图片,imshow函数展示图片,进而可以对图片进行滤波、分割等多种处理操作。
Floyd算法实现:Floyd算法是一种计算图中所有节点对之间最短路径的算法。在MATLAB中,可以通过嵌套循环来实现此算法,并使用矩阵存储图中各节点的距离信息。