MATLAB主要包括编程和仿真两大部分,它将数值分析、矩阵计算、科学数据可视化、非线性动态系统的建模、仿真和App界面设计等诸多强大功能集成在一个环境中。这些方面的内容都是需要有一定的基础语法能力才去完成,本文将MATLAB中最常用、也是最基础的语法汇总在一起,适用于刚接触MATLAB的小伙伴。
MathWorks MATLAB R2024b MacOS Apple Silicon/Inter 中文正式免费版
- 类型:商业效率
- 大小:18.0GB
- 语言:简体中文
- 时间:2024-09-13
查看详情
主要内容包括:界面熟悉,变量矩阵赋值、索引,循环、判断语句介绍,二维绘图操作。
一、MATLAB界面
编写一个简单的脚本文件,即可熟悉MATLAB的界面,以创建一个全零矩阵为例。
需要了解:1新建脚本文件,2编写脚本文件,3执行脚本文件,4保存,5-7查看结果。
至此,往后可以编写再复杂一点的脚本文件了。
二、变量
MATLAB(Matrix Laboratory)意为矩阵实验室,其所有的代数运算都基于矩阵运算,每个变量都视为是矩阵的形式,即使是常数,也作为1*1的矩阵。
变量名如‘A_01’,可由字母、数字、下划线任意几种组成,但要避免与系统预定义的一些变量名相同,当然,一般随意取的不会,相同了再改就是了。每一个变量矩阵可以赋予其n*m个值,类似Excel中的一个二维表格,格子中可以是数值,也可以是字符,这里只考虑纯数值的格式,也是MATLAB中默认的数据格式(double类型)。
矩阵基本操作涉及 矩阵赋值、矩阵索引、矩阵运算等操作。
2.1 矩阵赋值
矩阵赋值包括单个赋值和直接创建特色矩阵(只需要了解零矩阵、全1矩阵、空矩阵、线性向量足以)。
%直接赋值,即依次输入,同行中使用逗号或者空格隔开,用分号开始下一行输入A=[1 2 3 ; 4 5 6] %创建特色矩阵,如零矩阵、全1矩阵、空矩阵、线性向量B1=zeros(3,4); %零矩阵 zeros(行,列)B2=ones(2,2); %全1矩阵 ones(行,列)B3=[]; %空矩阵B4=2:1:10; %从2到10,间距为1,的行向量赋值%代码后不加分号可在命令行窗口中输出结果,反之
2.2矩阵索引
如果想对某行、列、个的值进行修改或者提取,就需要使用索引。
A=[1:1:3 ; zeros(1,3) ; ones(1,3)]%提取A中(2,3)位置的值B1=A(2,3)%提取A中第一行的值,列的类似B2=A(1,:) %:代表所有,即第一行的所有列%修改A(2,3)的值A(2,3)=9
运行结果
2.3 矩阵的运算
运算最常用便是 加 减 点乘 点除 点幂,这里需要注意的是,我们通常希望是两个矩阵中的对应元素作乘法和除法,而不是矩阵作乘法(*)和除法(/),那么就需要用到点乘(.*)和点除(./)。
A=[1,2,3;4,5,6];B=[1,1,1;2,2,2]%普通加减乘除C1=A+BC2=A-BC3=A*2C4=A/2%点乘 点除 点幂D1=B.*AD2=B./AD3=B.^A
运行结果
三、循环语句、判断结构
介绍的循环语句(for)、数据输出(disp和fprintf)、判断语句(if,if else)
循环语句可以帮助我们批量性的处理、判断一些数据。
以判断10以内3的倍数为例
% for-end循环语句,i从1递增1到10,也可写为1:10,默认增量1for i=1:1:10 a=mod(i,3); % mod(m,n)为取余函数,m/n余几 if a == 0 %if 判断语句,大于> ,大于等于>= ,小于类似 fprintf('%d是3的倍数n',i); %fprintf用于在命令行窗口输出特定文本 %fprintf('文本结构形式',变量),%d表示输出整数,%f输出浮点数 %/n表示换行,注意是正斜杠(便于记忆,正斜杠/是向前倾,反斜杠是向后倒 else %if-else-end结构 fprintf('%d不是3的倍数,余数为%fn',i,a); endend
输出结果
四、简易二维绘图
主要涉及函数(plot)
plot函数二维绘图示例,绘制
曲线
%MATLAB中,exp(n)表示自然常数的n次幂,圆周率用pi表示x=0:0.1:2*pi; %定义域,想要线更平滑,则间距再调小y1=2*exp(-0.5*x).*sin(2*pi*x); %注意,两个矩阵间元素乘积是点乘y2=sin(x);plot(x,y1,'--b',x,y2,'og-.')%用法plot(第一条线的x,对应的y,对应线格式,第n条格式类似)%线格式分为三类,可不写,默认为实线,颜色自动% 1颜色(蓝色 b,绿色y)% 2对应点格式(o表示圈圈)% 3线型(虚线'--' ,点划线'-.' ,实线'-')
运行结果
至此,MATLAB中,最基础最基础的东西已经掌握,可以绘制简单二维图,通过循环、判读、矩阵索引处理简单的二维数据。
下一步则需要根据自己需求对每一块的内容进行针对性的学习。
第二块内容中,尚需进阶的几个方面:
- 了解数据类型中的字符串类型char,单元数组类型cell,结构体类型struct。
- 查找满足相应条件的矩阵中的元素及其索引,对矩阵元素进行排序。
- 符号与多项式的运算、求导,方程组求解,函数拟合与插值。
第三块内容中,尚需进阶的几个方面:
- 数据输入、输出的用法(input、disp、fprintf等)
- 选择结构(switch,else ifdeng )
- 循环语句(while,continue,bireak),循环嵌套结构
- function自定义函数文件编写
第四块内容中,尚需进阶的几个方面:
- 二维绘图的格式应用
- 三维网格图、曲面图、散点图的绘制
- 其他需要进阶的几个方面
- 字符串的处理,文本文件的读写等。
写在后面的话
初学MATLAB的东西较多,建议针对自己的需求分块强化,而那些尚不需要的内容可以放弃。
每一种函数的表达方式,只学对自己最用的,不需要全都记住,最重要的是思维方式,怎样去一步步去解决自己需要解决的问题,同时呢,这一步步的过程对应的代码,GPT老师也能帮你。后续会慢慢更新每一块的进阶内容。
文章来自互联网,只做分享使用。发布者:牧草,转转请注明出处:https://www.dingdanghao.com/article/764147.html