> 文章列表 > 用高中生的思维写一篇MATLAB入门

用高中生的思维写一篇MATLAB入门

用高中生的思维写一篇MATLAB入门

文章目录

  • 一、简介
  • 二、MATLAB的工作界面
  • 三、基本语句
    • 1、if语句
    • 2、switch语句
    • 3、try语句
    • 4、for语句和while语句
    • 5、break语句和continus语句
  • 四、数值运算
  • 1、基本算术运算
    • 2、format命令
    • 3、关系运算
    • 4、逻辑运算
    • 5、特殊变量和常数
    • 6、数学函数
  • 五、二维平面绘图
    • 1、关于颜色和数据标记点参数选择
    • 2、plot函数
    • 3、图形修饰与控制
    • 4、图形窗口的分割

一、简介

MATLAB是Matrix Laboratory的缩写,含义为矩阵实验室,最初是为了方便矩阵的存取和运算而开发的接口程序。经过几十年的扩充和完善,MATLAB已经成为集科学计算、可视化与编程于一体的高性能的科学工程计算语言和编程开发环境,目前是世界上最流行、应用最广泛的工程计算和仿真软件之一,几乎成为各类科学研究和工程应用中的标准工具。
目前,MATLAB在数值计算、信号处理、图像处理、自动控制、算法设计和通信仿真等众多领域都获得了广泛的应用

MATLAB还使用在数学建模方面,在2022年热播的《天才基本法》中,林朝夕打算使用数学建模的方法来预测车祸地点,在上个课时间研究数学建模,可以看到出他们使用的工具也是MATLAB。
请添加图片描述
请添加图片描述

在通信原理中,MATLAB也可以用作通信的仿真
用高中生的思维写一篇MATLAB入门
用高中生的思维写一篇MATLAB入门

二、MATLAB的工作界面

已MATLAB2022为例,当MATLAB启动时,会显示如下窗口
用高中生的思维写一篇MATLAB入门
命令窗:MATLAB的主窗口,默认位于MATLAB2022下方,用于输入命令、运行命令,以及显示运行结果。
当前目录浏览窗:位于左上侧,用于显示当前工程目录文件夹所包含的文件。

工作区窗:为与左下侧,在命令窗中运行命令和脚本程序生成的变量均保存在工作空间中,需要时可以双击变量名或者在命令窗口输入变量名查看。

M文件编程窗:用MATLAB语言编程的文件编写的文件被称为M文件,按照调用方式不同可以分为命令文件和函数文件

备注:函数文件和命令文件区别
函数文件可以传递参数,而命令文件不具备这种功能
命令文件中的变量是全局变量,文件执行完后还是有效变量,仍然保存在工程区中,而函数文件中的变量都是局部变量,只在本函数中才有效,当函数文件执行完毕后,这些变量将被消除。

三、基本语句

1、if语句

if 表达式程序模块1
else程序模块2
end

例:百分制成绩学生转换成四级成绩输出

clear 
n=input('输入n='); if n>90r='A'
elseif n>=80r='B' 
elseif n>=70r='C'
elseif n>=60 r='D'
end

2、switch语句

switch 表达式case 数值1程序模块1;case 数值2程序模块2...otherwise程序模块n...
end

用高中生的思维写一篇MATLAB入门

例:将百分制成绩分为5个等级输出,使用switch语句

clear
n=input('输入n= '); 
switch fix(n/10)              case {10,9}r='A'case 8r='B'case 7r='C'case 6r='D'otherwiser='E'
end

3、try语句

try语句组1
catch语句2
endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留lasterr变量,并转去执行语句组2

例程如下:

A=[1,2,3;4,5,6]; B=[1,2,3;4,5,6];
tryC=A*B;
catchC=A.*B;
end
disp('C=');
disp(C);
lasterr                %显示出错原因>> untitled4
C=1     4     916    25    36
ans ='错误使用  * 用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要单独对矩阵的每个元素进行运算,请使用 TIMES (.*)执行按元素相乘。'

备注:矩阵乘法和矩阵点乘区别(考虑到没有学过线性代数的同学,字丑了点…)
请添加图片描述

4、for语句和while语句

for循坏变量=起始值:步长:终止值循环体
endwhile 表达式循坏体
end

例:使用for结构计算1+2+3+…+100

clear
sum=0;
for i=1:100sum=sum+i;
end
disp(sum);
%运行结果:sum=5050clear
sum=0; i=0;
while i<100i=i+1;sum=sum+i;
end
disp(sum);
%运行结果:sum=5050

5、break语句和continus语句

与循环结构相关的语句还有break语句和continue语句,它们一般与if语句搭配使用。
break语句用于终止循坏的执行,当在循坏体内执行到该语句时,程序将跳出循坏,继续执行循坏语句的下一语句。
continue语句控制跳过循坏体中的某些语句,当在循坏体内执行到该语句时,程序将跳过循坏体所有剩下的语句,继续下一次循坏。

四、数值运算

1、基本算术运算

运算 符号
+
-
*
左除 \\
右除 /
幂次方 ^

例:在MATLAB运算下列式子
20−3∗4÷10+2.5220-3*4÷10+2.5^{2} 2034÷10+2.52

X=20-3*4/10+2.5^2
disp(X)%运行结果:25.0500

2、format命令

用高中生的思维写一篇MATLAB入门

3、关系运算

用高中生的思维写一篇MATLAB入门

4、逻辑运算

用高中生的思维写一篇MATLAB入门

5、特殊变量和常数

用高中生的思维写一篇MATLAB入门

6、数学函数

用高中生的思维写一篇MATLAB入门
用高中生的思维写一篇MATLAB入门

五、二维平面绘图

1、关于颜色和数据标记点参数选择

用高中生的思维写一篇MATLAB入门

2、plot函数

help plot
plot - 二维线图
此 MATLAB 函数 创建 Y 中数据对 X 中对应值的二维线图。 要绘制由线段连接的一组坐标,请
将 X 和 Y 指定为相同长度的向量。 要在同一组坐标轴上绘制多组坐标,请将 X 或 Y 中的至少
一个指定为矩阵。
plot(X,Y)
plot(X,Y,LineSpec)
plot(X1,Y1,…,Xn,Yn)
plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn)
plot(Y)
plot(Y,LineSpec)
plot(,Name,Value)
plot(ax,
)
p = plot(___)
输入参数
X - x 坐标
标量 | 向量 | 矩阵
Y - y 坐标
标量 | 向量 | 矩阵
LineSpec - 线型、标记和颜色
字符向量 | 字符串
ax - 目标坐标区
Axes 对象 | PolarAxes 对象 | GeographicAxes 对象
略…

3、图形修饰与控制

title——给图形加标题
xlable——给x轴加标注
ylable——给y轴加标注
text——在图形指定的任意位置加标注
gtext——利用鼠标将标注加到图形任意位置
grid on——打开坐标网格线
grid off——关闭坐标网格线
legnd——添加图例
axis——控制坐标轴刻度

例:绘制两个三角函数

a=0:0.01:2*pi;              %定义X的范围,第二个参数步长
y1=sin(a);
y2=2*sin(a);
plot(a,y1,'r-.',a,y2,'b--'); %绘制当前二维平面图
title('正弦三角函数图像');      %标题
xlabel('x');                %x轴
ylabel('y');                %y轴
grid on;                    %显示坐标网格线

用高中生的思维写一篇MATLAB入门

4、图形窗口的分割

subplot函数调用格式:
subplot(m,n,p)
将函数将当前图形窗口分成m x n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区,在每一个绘图区允许以不同的坐标系单独绘制图形。

a=0:0.01:2*pi;              %定义X的范围,第二个参数步长
y1=sin(a);
y2=sin(2*a);subplot(2,1,1);
xlim([0,2*pi]);
plot(a,y1); %绘制当前二维平面图
title('正弦三角函数图像');      %标题
xlabel('x');                %x轴
ylabel('y');                %y轴
grid on;                    %显示坐标网 格线subplot(2,1,2);
plot(a,y2); %绘制当前二维平面图
title('2xsin 正弦三角函数图像');      %标题
xlabel('x');                %x轴
ylabel('y');                %y轴
grid on;                    %显示坐标网格线

用高中生的思维写一篇MATLAB入门