您的位置:首页 > 健康 > 养生 > MATLAB绘图基础1:MATLAB基础回顾

MATLAB绘图基础1:MATLAB基础回顾

2024/10/6 6:04:37 来源:https://blog.csdn.net/qq_39032096/article/details/141612299  浏览:    关键词:MATLAB绘图基础1:MATLAB基础回顾

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



1.MATLAB基础回顾
1.1 MATLAB语言特点
  • M A T L A B {\rm MATLAB} MATLAB是一种解释型语言,允许用户逐步执行命令并立即查看结果;
  • M A T L A B {\rm MATLAB} MATLAB拥有大量内置的数学、统计、工程等方面的函数和工具箱,极大地简化了技术计算任务,支持自定义函数的开发;
  • M A T L A B {\rm MATLAB} MATLAB支持多种数值计算的数据类型,包括多维数组、稀疏矩阵等,并提供多种矩阵运算函数;
  • M A T L A B {\rm MATLAB} MATLAB提供丰富的 2 D 2{\rm D} 2D 3 D {\rm 3D} 3D可视化功能,可以方便地绘制各种图形并进行图像处理;
  • M A T L A B {\rm MATLAB} MATLAB可以调用外部的 C / C {\rm C/C} C/C++和 F o r t r a n {\rm Fortran} Fortran代码,扩展其功能;
  • M A T L A B {\rm MATLAB} MATLAB可以生成可移植的 C / C {\rm C/C} C/C++和 . N E T {\rm .NET} .NET代码,将开发的算法及应用部署到其他环境;
  • M A T L A B {\rm MATLAB} MATLAB支持面向对象编程,可以使用类、封装、继承等概念进行模块化编程;
  • M A T L A B {\rm MATLAB} MATLAB具有丰富的工具包,可用于信号处理、控制系统、优化、机器学习等领域;
  • M A T L A B {\rm MATLAB} MATLAB可以进行并行计算,利用多核 C P U {\rm CPU} CPU提高计算速度;
1.2 MATLAB界面介绍

1

  • 命令行窗口 ( C o m m a n d W i n d o w ) ({\rm Command\ Window}) (Command Window):用户可以在命令行窗口输入 M A T L A B {\rm MATLAB} MATLAB命令并查看其输出,如: c l e a r 、 c l c {\rm clear、clc} clearclc
  • 编辑器 ( E d i t o r ) ({\rm Editor}) (Editor) M A T L A B {\rm MATLAB} MATLAB编辑器用于创建、编辑和保存 M A T L A B {\rm MATLAB} MATLAB脚本和函数文件,用户可以在编辑器中编写代码,执行脚本,并进行代码调试;
  • 当前文件夹 ( C u r r e n t F o l d e r ) ({\rm Current\ Folder}) (Current Folder):当前文件夹窗口显示 M A T L A B {\rm MATLAB} MATLAB当前工作目录中的文件和文件夹,用户可在其中浏览、打开、保存和管理 M A T L A B {\rm MATLAB} MATLAB文件;
  • 工作区 ( W o r k s p a c e ) ({\rm Workspace}) (Workspace):工作区窗口用于管理 M A T L A B {\rm MATLAB} MATLAB工作区中的变量和数据,用户可在其中查看、清除和操作工作区中的变量;
  • 命令历史 ( C o m m a n d H i s t o r y ) ({\rm Command\ History}) (Command History):命令历史窗口显示用户在命令窗口中输入的历史命令,用户可以使用命令历史查找以前执行的命令并重新运行它们;
  • P l o t {\rm Plot} Plot工具 ( P l o t t i n g T o o l s ) ({\rm Plotting\ Tools}) (Plotting Tools) M A T L A B {\rm MATLAB} MATLAB提供丰富的绘图工具,用户可以使用它们创建各种类型图表和图形,进行可视化数据;
  • A p p s {\rm Apps} Apps和工具箱 ( A p p s a n d T o o l b o x e s ) ({\rm Apps\ and\ Toolboxes}) (Apps and Toolboxes) M A T L A B {\rm MATLAB} MATLAB具有各种应用程序和工具箱,用于不同领域和任务,如:统计分析、机器学习、图像处理等;
  • 帮助和文档 ( H e l p a n d D o c u m e n t a t i o n ) ({\rm Help\ and\ Documentation}) (Help and Documentation) M A T L A B {\rm MATLAB} MATLAB提供广泛的在线文档和帮助资源,包括:函数文档、示例代码和教程;
1.3 MATLAB语法基础
  1. 标识符:标识符是用来表示变量、函数、文件和其他命名实体的名称,标识符必须遵循的命名规则和约定如下:

    • 标识符必须以字母开头;
    • 标识符可以包含字母、数字和下划线;
    • 标识符区分大小写;
    • 标识符不能与 M A T L A B {\rm MATLAB} MATLAB的保留关键字相同;
  2. 关键字:关键字具有特殊含义,不能用作标识符,常见的关键字如下:

    • i f {\rm if} if:用于条件语句,条件成立时执行某些代码块;
    • e l s e {\rm else} else:用于条件语句,指定条件不成立时执行某些代码块;
    • e l s e i f {\rm elseif} elseif:在多条件 i f {\rm if} if语句中用于指定额外的条件;
    • w h i l e {\rm while} while:用于创建循环,当指定条件为真时执行一段代码块;
    • f o r {\rm for} for:用于创建循环,用于遍历数组或执行一定次数的操作;
    • e n d {\rm end} end:用于结束循环、函数或条件语句的代码块;
    • f u n c t i o n {\rm function} function:用于定义 M A T L A B {\rm MATLAB} MATLAB函数;
    • r e t u r n {\rm return} return:用于从函数中返回值;
    • b r e a k {\rm break} break:用于退出循环;
    • c o n t i n u e {\rm continue} continue:用于跳过当前循环迭代,继续下一次迭代;
  3. 注释:使用注释来添加说明性文字或注释性信息,以使代码更易于理解和维护,包括单行注释和多行注释:

    • 单行注释:使用百分号 % \% %开始的一行文字,单行注释通常用于在代码中添加短期注释或说明;

    • 多行注释:由 % { \%\{ %{ % } \%\} %}包围的文本块组成,多行注释通常用于添加更长或多段文字的注释;

    • 单行注释和多行注释示例:

      % 单行注释示例
      number1 = 100;		% 给number1赋值100;%{
      多行注释示例:
      多行注释通常用于添加更长或多段文字的注释;
      下面代码给number2赋值200;
      %}
      number2 = 200;
      
  4. 分节符:" % % {\rm \%\%} %%"符号用作分节符,分节符用于将脚本或函数分成不同的部分,以提高代码的可读性和组织性;

    % 说明:下面代码分为两节,将光标放在想要运行的节的任何位置,单击"运行节"按钮;
    % 每个节可以单独运行进行测试或调试,无须运行整个脚本或函数;%% 加法运算符
    number1 = 10;
    number2 = 20;
    result1 = number1 + number2;
    result1%% 减法运算符
    number3 = 20;
    number4 = 10;
    result2 = number4 - number3;
    result2
    
  5. 变量:用于存储和操作各种数据类型,包括:标量、矩阵、字符串、结构等, M A T L A B {\rm MATLAB} MATLAB中定义变量直接使用变量名,不需要声明类型,示例如下:

    % 定义两个变量;
    number1 = 100;
    number2 = 200;
    PI = 3.1415926;% 算术运算;
    result = number1 + number2;
    
  6. 续行符:使用省略号 . . . {\rm ...} ...表示续行符,可将一行代码分成多行,提高长表达式的代码可读性,示例如下:

    % 续行符示例1:
    result=1+2+...4+5+6;
    result% 续行符示例2:
    matrix1=[1,2,3;...4,5,6;...7,8,9];
    matrix1
    
1.4 MATLAB数据类型
  1. 双精度浮点数 ( D o u b l e ) ({\rm Double}) (Double):双精度浮点数用于存储小数或浮点数值,双精度浮点数使用 64 64 64位表示数字,示例如下:

    % 双精度浮点数示例:
    dNumber1 = 3.14;
    dNumber2 = 2.71828;result = dNumber1 + dNumber2;
    
  2. 整数 ( I n t e g e r ) ({\rm Integer}) (Integer):整数用于存储整数值,分为有符号整数和无符号整数,有符号整数可以表示正数、负数和零,无符号整数表示非负整数, M A T L A B {\rm MATLAB} MATLAB中的整数分为 8 8 8位、 16 16 16位、 32 32 32位和 64 64 64位整数,整数类型如下:

    数据类型 数据类型 数据类型 类型描述 类型描述 类型描述 数据类型 数据类型 数据类型 类型描述 类型描述 类型描述
    i n t 8 {\rm int8} int8 8 位有符号整数 8位有符号整数 8位有符号整数 i n t 32 {\rm int32} int32 32 位有符号整数 32位有符号整数 32位有符号整数
    u i n t 8 {\rm uint8} uint8 8 位无符号整数 8位无符号整数 8位无符号整数 u i n t 32 {\rm uint32} uint32 32 位无符号整数 32位无符号整数 32位无符号整数
    i n t 16 {\rm int16} int16 16 位有符号整数 16位有符号整数 16位有符号整数 i n t 64 {\rm int64} int64 64 位有符号整数 64位有符号整数 64位有符号整数
    u i n t 16 {\rm uint16} uint16 16 位无符号整数 16位无符号整数 16位无符号整数 u i n t 64 {\rm uint64} uint64 64 位无符号整数 64位无符号整数 64位无符号整数
    % 整数示例:
    iNumber1 = 100;					% 声明一个有符号整数变量iNumber1并赋值100;
    iNumber2 = -200;				% 声明一个有符号整数变量iNumber2并赋值-200;uInt16Number1 = uint16(300);	% 声明一个16位无符号整数变量uInt16Number1并赋值300;
    
  3. 字符 ( C h a r ) ({\rm Char}) (Char):字符数据类型用于存储单个字符,字符串数据类型用于存储文本或字符序列,示例如下:

    c1 = 'F';		% 声明一个字符变量c1,存储字母F;
    c2 = 'X';		% 声明一个字符变量c2,存储字母X;
    c3 = '@';		% 声明一个字符变量c3,存储特殊字符@;
    c4 = ' ';		% 声明一个字符变量c4,存储空格字符;
    
  4. 逻辑 ( L o g i c a l ) ({\rm Logical}) (Logical):逻辑数据类型用于条件测试、逻辑运算和控制流程,逻辑数据类型有两个值: t r u e {\rm true} true f l a s e {\rm flase} flase t r u e {\rm true} true表示逻辑真,用 1 1 1表示, f a l s e {\rm false} false表示逻辑假,用 0 0 0表示,示例如下:

    % 逻辑数据类型示例:
    is_true = true;
    is_false = false;if is_truedisp("条件成立,输出真!");
    elsedisp("条件不成立,输出假!");
    end
    
  5. 复数 ( C o m p l e x ) ({\rm Complex}) (Complex):复数是具有实部和虚部的数值,常以 a + b i {\rm a+bi} a+bi形式表示, a {\rm a} a为实部, b {\rm b} b为虚部, i {\rm i} i为虚数单位,示例如下:

    % 定义复数;
    cpxNumber1 = 1 + 2i;
    cpxNumber2 = 3 + 4i;% 复数加减法;
    cpxAdd = cpxNumber1 + cpxNumber2;
    cpxSub = cpxNumber2 - cpxNumber1;% 获取复数的实部和虚部;
    realGet = real(cpxNumber1);		% 获取复数实部;
    imagGet = imag(cpxNumber1);		% 获取复数虚部;
    
1.5 MATLAB常见运算符
  1. 算术运算符

    运算符 运算符 运算符 运算符名称 运算符名称 运算符名称 示例 示例 示例 运算符 运算符 运算符 运算符名称 运算符名称 运算符名称 示例 示例 示例
    + + + 加法 加法 加法 n u m 1 + n u m 2 {\rm num1+num2} num1+num2/ 矩阵右除 矩阵右除 矩阵右除 m a t 1 / m a t 2 {\rm mat1/mat2} mat1/mat2
    + + + 一元加法 一元加法 一元加法 + x {\rm +x} +x . . .\ 按元素左除 按元素左除 按元素左除 a r r 1. {\rm arr1.} arr1.\ a r r 2 {\rm arr2} arr2
    − - 减法 减法 减法 n u m 1 − n u m 2 {\rm num1-num2} num1num2\ 矩阵左除 矩阵左除 矩阵左除 m a t 1 {\rm mat1} mat1\ m a t 2 {\rm mat2} mat2
    − - 一元减法 一元减法 一元减法 − x {\rm -x} x . . .^ 按元素求幂 按元素求幂 按元素求幂 a r r 1 {\rm arr1} arr1.^ e x p {\rm exp} exp
    . ∗ .* . 按元素乘法 按元素乘法 按元素乘法 a r r 1. ∗ a r r 2 {\rm arr1.*arr2} arr1.arr2^ 矩阵幂 矩阵幂 矩阵幂 m a t 1 {\rm mat1} mat1^ p {\rm p} p
    ∗ * 矩阵乘法 矩阵乘法 矩阵乘法 m a t 1 ∗ m a t 2 {\rm mat1*mat2} mat1mat2 . ′ .' . 转置 转置 转置 m a t . ′ {\rm mat.'} mat.
    . . ./ 按元素右除 按元素右除 按元素右除 n u m . / d e n {\rm num./den} num./den ′ ' 复共轭转置 复共轭转置 复共轭转置 m a t ′ {\rm mat'} mat
    % ch01_01.m
    % MATLAB常见的算术运算符示例:%% 加法运算符和减法运算符示例
    iNumber1 = 100;
    iNumber2 = 200;
    result1 = iNumber1 + iNumber2
    result2 = iNumber2 - iNumber1%% 一元加法和一元减法示例
    iNumber3 = 520;
    result3 = + iNumber3
    result4 = - iNumber3%% 按元素乘法示例
    arr1 = [1, 2, 3];
    arr2 = [4, 5, 6];
    result5 = arr1 .* arr2%% 矩阵乘法示例
    matrix1 = [1, 2;3, 4];
    matrix2 = [5, 6;7, 8];
    result6 = matrix1 * matrix2%% 按元素右除示例
    num = [10, 20, 30];
    den = [2, 4, 6];
    result7 = num ./ den%% 矩阵右除示例
    matrix3 = [10, 20;30, 40];
    matrix4 = [2, 4;6, 8];
    result8 = matrix3 / matrix4%% 按元素左除示例
    arr3 = [10, 20, 30];
    arr4 = [2, 4, 6];
    result9 = arr3 .\ arr4%% 矩阵左除示例
    matrix5 = [1, 2;3, 4];
    matrix6 = [5, 6;7, 8];
    result10 = matrix5 \ matrix6%% 按元素求幂示例
    arr5 = [2, 3, 4];
    exp = [2, 3, 2];
    result11 = arr5 .^ exp%% 矩阵幂示例
    matrix7 = [1, 2;3, 4];
    p = 2;
    result12 = matrix7^p%% 转置示例
    matrix8 = [1, 2;3, 4];
    result13 = matrix8.'%% 复共轭转置示例
    cpxMatrix9 = [1 + 2i, 3 - 4i;5 + 6i,7 - 8i];
    result14 = cpxMatrix9'
    
    % ch01_01.m运算结果:
    result1 =300result2 =100result3 =520result4 =-520result5 =4    10    18result6 =19    2243    50result7 =5     5     5result8 =5.0000   -0.00000    5.0000result9 =0.2000    0.2000    0.2000result10 =-3.0000   -4.00004.0000    5.0000result11 =4    27    16result12 =7    1015    22result13 =1     32     4result14 =1.0000 - 2.0000i   5.0000 - 6.0000i3.0000 + 4.0000i   7.0000 + 8.0000i
    
  2. 关系运算符

    运算符 运算符 运算符 运算符名称 运算符名称 运算符名称 示例 示例 示例
    = = == == 等于 等于 等于 n u m 1 = = n u m 2 检查 n u m 1 是否等于 n u m 2 {\rm num1==num2检查num1是否等于num2} num1==num2检查num1是否等于num2
    ~ = ~= = 不等于 不等于 不等于 n u m 1 ~ = n u m 2 检查 n u m 1 是否不等于 n u m 2 {\rm num1~=num2检查num1是否不等于num2} num1=num2检查num1是否不等于num2
    > > > 大于 大于 大于 n u m 1 > n u m 2 检查 n u m 1 是否大于 n u m 2 {\rm num1>num2检查num1是否大于num2} num1>num2检查num1是否大于num2
    > = >= >= 大于或等于 大于或等于 大于或等于 n u m 1 > = n u m 2 检查 n u m 1 是否大于或等于 n u m 2 {\rm num1>=num2检查num1是否大于或等于num2} num1>=num2检查num1是否大于或等于num2
    < < < 小于 小于 小于 n u m 1 < n u m 2 检查 n u m 1 是否小于 n u m 2 {\rm num1<num2检查num1是否小于num2} num1<num2检查num1是否小于num2
    < = <= <= 小于或等于 小于或等于 小于或等于 n u m 1 < = n u m 2 检查 n u m 1 是否小于或等于 n u m 2 {\rm num1<=num2检查num1是否小于或等于num2} num1<=num2检查num1是否小于或等于num2
    % ch01_02.m
    % MATLAB常见的关系运算符示例:%% 关系运算符==示例:
    num1 = 100;
    num2 = 100;result1 = (num1 == num2)%% 关系运算符~=示例:
    num3 = 100;
    num4 = 200;
    result2 = (num3 ~= num4)%% 关系运算符>示例:
    num5 = 10;
    num6 = 20;
    result3 = (num5 > num6)%% 关系运算符>=示例:
    num7 = 100;
    num8 = 100;
    result4 = (num7 >= num8)%% 关系运算符<示例:
    num9 = 100;
    num10 = 200;
    result5 = (num9 < num10)%% 关系运算符<=示例:
    num11 = 100;
    num12 = 200;
    result6 = (num11 <= num12)
    
    % ch01_02.m结果:
    result1 =logical1result2 =logical1result3 =logical0result4 =logical1result5 =logical1result6 =logical1
    
  3. 逻辑运算符

    运算符 运算符 运算符 运算符名称 运算符名称 运算符名称 运算符示例 运算符示例 运算符示例
    & \& & 计算逻辑 A N D {\rm 计算逻辑AND} 计算逻辑AND n u m 1 & n u m 2 执行逻辑 A N D 操作 {\rm num1\&num2执行逻辑AND操作} num1&num2执行逻辑AND操作
    | 计算逻辑 O R {\rm 计算逻辑OR} 计算逻辑OR n u m 1 ∣ n u m 2 计算逻辑 O R {\rm num1|num2计算逻辑OR} num1∣num2计算逻辑OR
    || 计算逻辑 O R ( 具有短路功能 ) {\rm 计算逻辑OR(具有短路功能)} 计算逻辑OR(具有短路功能) n u m 1 ∣ ∣ n u m 2 执行逻辑 O R 操作 ( 具有短路功能 ) {\rm num1||num2执行逻辑OR操作(具有短路功能)} num1∣∣num2执行逻辑OR操作(具有短路功能)
    & & \&\& && 计算逻辑 A N D ( 具有短路功能 ) {\rm 计算逻辑AND(具有短路功能)} 计算逻辑AND(具有短路功能) n u m 1 & & n u m 2 执行逻辑 A N D 操作 ( 具有短路功能 ) {\rm num1\&\&num2执行逻辑AND操作(具有短路功能)} num1&&num2执行逻辑AND操作(具有短路功能)
    ~ ~ 计算逻辑 N O T {\rm 计算逻辑NOT} 计算逻辑NOT ~ n u m 1 执行逻辑 N O T 操作 {\rm ~num1执行逻辑NOT操作} num1执行逻辑NOT操作
    % ch01_03.m
    % MATLAB常见的逻辑运算符示例:%% 逻辑运算符示例:
    bool1 = true;
    bool2 = false;
    result1 = (bool1 & bool2)
    result2 = (bool1 | bool2)
    result3 = (bool1 || bool2)
    result4 = (bool1 && bool2)
    result5 = (~bool1)
    
    % ch01_03.m结果:
    result1 =logical0result2 =logical1result3 =logical1result4 =logical0result5 =logical0
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com