【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)
博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你;
本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教
创作不易,如果本文帮到了您;
请帮忙点个赞 ;
请帮忙点个赞 ;
请帮忙点个赞 ;

1 常用命令
matlab支持在命令行窗口直接输入命令进行相应的操作,这里介绍一下常用的命令和符号,是最基本需要了解的知识;
1.1 功能符号
| 符号 | 功能 |
|---|---|
:
|
用于定义数组或向量中会用到,功能较多 |
%
|
作为注释的时候会使用 |
%%
|
批量注释的时候使用 |
()
|
运算中括号内的运算优先级更高 |
[]
|
定义矩阵的时候会用到 |
{}
|
构成单元数组 |
.
|
小数点(浮点数中使用);或者用作域访问符号 |
...
|
续行符号,一行写不下可以通过续行符换到第二行 |
=
|
赋值符号 |
‘
|
单引号,用于字符串 |
1.2 常用指令
| 指令 | 功能 |
|---|---|
ls/dir
|
列出当前路径下的文件结构; |
cd
|
进入某个路径,用法:cd dir
|
clc
|
清楚命令行窗口显示的内容 |
path
|
显示matlab path,matlab运行脚本时会搜索这些路径 |
quit
|
退出matlab |
type
|
显示文本内容 |
help
|
显示帮助内容 |
save
|
保存工作区的内存变量到指定文件 |
1.3 指令的使用
这里简单的使用了其中几个操作,具体如下;
冒号的使用:定义了一个数组或者称之为向量;

ls的使用

2 数据类型
2.1 变量
变量是任何程序设计语言的基本元素;
MATLAB中变量的特点:
- 不强制要求事先对所使用的变量进行声明;
- 不需要指定为变量指定类型,MATLAB 语言会根据所赋予变量的值或对变量所进行的操作来识变量的类型;
- 在赋值过程中,如果赋值变量己存在,则MATLAB 将使用新值旧值,并以新值类型代替旧值类型;
变量的命名规则::
- 变量名必须以字母开头,之后可以是任意的字母、数字或下划线;
- 变量名区分字母的大小写;
- 变量名不超过 31 字符,第 31 字符以后的字符将被忽略;
局部变量和全局变量:
- 局部变量:仅在当前M文件内有效;
- 全局变量:需要通过global进行修饰;
2.1.1 变量的类型
- 字符串:用单引号进行修饰,例如:
'hello world'; - 向量/一维数组
- 行向量:
a=[1 2 3]或者a=1:1:3; - 列向量:
a=[1;2;3]
- 行向量:
- 矩阵/二维数组;
a = [1 2 ; 3 4 ]表示 a=[1234]a = \left[\begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix}\right]a=[1324] - 单元型数据;
- 结构型数据;
2.1.2 数据类型
- 数据类型:数据类型和
C/C++的类似,具体如下;定点数:
1.char:字符型;
2.unsigned char:无符号字符型;
3.short:短整形数据;
4.unsigned short:无符号短整形数据;
5.int:整形数据;
6.unsigned int:无符号整形数据;
7.long:长整形数据;
8.unsigned long:长整形数据;浮点数:有两种表示方法,十进制表示,指数表示这里称科学计数法好;
1.float:单精度浮点,只能保留7位有效数字;
2.double:双精度浮点,可以保留16位有效数字;
3. 科学计数法:5.1E5等于 5.1∗1055.1*10^55.1∗105,5.1E-2等于5.1∗10−25.1*10^{-2}5.1∗10−2;复数:a+bia+bia+bi称为之为复数,a,ba,ba,b均为实数;
2.1.3 数据转换
2.2 常量
pi:圆周率

eps:浮点相对精度

inf:无穷大

NaN:不定值i(j):复数的虚部realmin:最小实数

realmax:最大实数

ans:默认变量
2.3 运算符
2.4 运算符
运算符基本和C/C++相同;
| 运算符 | 定义 |
|---|---|
+
|
加 |
-
|
减 |
*
|
乘 |
.*
|
点乘 |
^
|
乘方 |
.^
|
点乘方 |
/
|
右除(右边是除数:5/2=2.5) |
./
|
点右除 |
\
|
左除 |
.\
|
点左除 |
'
|
转置 |
.'
|
点转置 |
乘与点乘的区别:
假如AB是两个矩阵,A*B是进行矩阵相乘,A.*B是A矩阵的每一个元素乘以B矩阵对应位置的元素形成的一个新矩阵;
矩阵A=[1234]A = \left[\begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix}\right]A=[1324],B=[5678]B = \left[\begin{matrix} 5 & 6 \\ 7 & 8 \\ \end{matrix}\right]B=[5768],则A乘B为 A∗B=[19224350]A*B=\left[\begin{matrix} 19 & 22 \\ 43 & 50 \\ \end{matrix}\right]A∗B=[19432250],则A点乘B为A.∗B=[5122132]A.*B=\left[\begin{matrix} 5 & 12 \\ 21 & 32 \\ \end{matrix}\right]A.∗B=[5211232]
右除和点右除,左除和点左除都是同样的道理,这里不再赘述。
2.5 关系运算符
| 运算符 | 作用 |
|---|---|
==
|
等于 |
~=
|
不等于 |
>=
|
大于等于 |
>
|
大于 |
<=
|
小于等于 |
<
|
小于 |
2.6 逻辑运算符
| 运算符 | 作用 |
|---|---|
&&
|
逻辑与 |
||
|
逻辑或 |
~
|
逻辑非 |
xor
|
逻辑异或 |
any
|
非零元素为真 |
all
|
所有元素非零为真 |
3 函数运算
上面时最基本的四则运算,通常在实际的项目中,还需要对复数,三角函数,指数等进行计算,那么可以直接调用matlab提供的函数。
3.1 复数运算
下面通过复数1+1i进行各个复数运算函数的测试;
abs:1+1i的模应该为2\sqrt22;

angle:1+1i的相角应该为45°,即π4\cfrac{\pi}{4}4π

complex:complex(1,1)

conj:共轭复数,两个实部相等,虚部互为相反数的复数互为共轭复数,所以conj(1+1i) = 1-1i;

imag:求复数的虚部;real:求复数的实部;unwrap:调整矩阵元素;isreal:是否实数
3.2 三角函数
sine:正弦函数;cosine:余弦函数;tangent:正切函数;secant:正割函数;cosecant:余割函数;
4 程序设计
在matlab脚本文件中可以进行函数设计,因为后缀名为.m因此叫M文件;这篇文章《【matlab 基础篇 01】快速开始第一个程序》已经做了比较详细的介绍。此处不再赘述,下面将对如何进行程序的封装,还有程序的顺序结构做一个介绍。
4.1 函数
关键字function需要用来修饰matlab的函数;写一个简单的函数,具体如下图所示;

关键点:
- 函数名需要与M文件名相同,如上图①所示;
- 传入三个参数
arg1,arg2,arg3,返回三个参数为retavl1,retavl2,retavl3,如上图②所示; - 命令行中可以直接调用该函数进行测试,结果符合预期,如上图③所示;
4.2 条件结构
4.2.1 if-esle-end
形式一:
if 表达式
%TODO
end
形式二:
if 表达式
%TODO
else
%TODO
end
形式三:
if 表达式
%TODO
elseif
%TODO
else
%TODO
end
4.2.2 switch-case-end
switch arg1
case 1,disp('OK')
case 2,disp('NO')
otherwise,disp('BYE')
end
4.3 循环结构
4.3.1 for-end
for i=1:100
%TODO
end
4.3.2 while-end
while 表达式
%TODO
end
4.4 流程控制
break:和C语言类似,它一般用来终止 for 或 while 循环, 通常与 if 条件语句结合在一起使用 ,如果条件满足则利用 break 命令将循环终止。在多层循环嵌套中, break 只终止最内层的循环continue:该命令通常用在 for 或 while 循环结构中, 并与 if 一起使用 ,其作用是结束本次循环,即跳过其后的循环语句而直接进行下一次是否执行循环的判断 ;pause:使程序暂停;return:函数返回;
5 总结
将这段时间matlab的学习,简单总结了一下,当然这只是冰山一角,不过已经足够去编写一些程序了。
本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教
创作不易,如果本文帮到了您;
请帮忙点个赞 ;
请帮忙点个赞 ;
请帮忙点个赞 ;
【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)的更多相关文章
- Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式
概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...
- WebBug靶场基础篇 — 02
本篇以第一人称记录这个关卡的第 1-5 关. 由于我记录的过程有点偏向于思考,所以截图截的多 = =!所以文章有点长... 下午一觉醒来,已经 4 点多了,然后开电脑,在虚拟机里,铺了铺靶场,但是毕竟 ...
- iOS开发基础篇-Button基础
一.简单介绍 UIButton 的功能:响应用户操作.显示文字.显示图片.调整内部图片和文字的位置. 二. UIButton 的状态 UIControlStateNormal :普通状态,为默认情 ...
- MySQL基础篇(02):从五个维度出发,审视表结构设计
本文源码:GitHub·点这里 || GitEE·点这里 一.数据场景 1.表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的 ...
- iOS系列 基础篇 02 StoryBoard 故事板文件
iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyb ...
- Java基础篇(02):特殊的String类,和相关扩展API
本文源码:GitHub·点这里 || GitEE·点这里 一.String类简介 1.基础简介 字符串是一个特殊的数据类型,属于引用类型.String类在Java中使用关键字final修饰,所以这个类 ...
- 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)
快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 文章目录 1 前言 2 plot 2.1 显示正弦波 2.2 修改颜色 2.3 修改点的形状 2.4 修改线的形状 ...
- C#基础篇02
首先:一个完整的方法是包括两部分的,代码和注释!!!! 程序的调试: 3:设置断点: 断点之前的程序已经确保正确,可是在断点后的部分可能出现错误,所以设置完断点后,直接点击启动,然后按F11逐步棸的 ...
- Java岗 面试考点精讲(基础篇02期)
1. 两个对象的hashCode相同,则equals也一定为true,对吗? 不对,答案见下面的代码: @Override public int hashCode() { return 1; } 两个 ...
随机推荐
- SVN版本控制器的使用说明(详细过程)
SVN使用教程总结 SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subv ...
- ASE project demo:pdf
欢迎使用 pdf ~ 主页面如下,整个app风格一致,保持简约舒适的视觉体验~ 侧边栏打开,可选择打开新的pdf文件,返回主页面,打开本地生词本,登录等操作~ 可以点击侧边栏OpenFile打开新的p ...
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- Problem C Careful Ascent
数学问题. 在不经过shield时,竖直速度是1.所以时间就是y/1=y,,,,在经过shield时,时间为shield的数值长度*影响因素,然后总时间把他们加起来,最后再用水平方向的长度除以总时间, ...
- PHP修改脚本最大执行时间和最大内存限制
PHP设置脚本最大执行时间的三种方法 1.在php.ini里面设置 max_execution_time = 120; 2.通过PHP的ini_set函数设置 ini_set("max_ex ...
- Linux学习笔记(五)搜索命令
搜索命令 whereis which locate find whereis 英文原意:locate the binary,source,and manual page files for a com ...
- 浅析CopyOnWriteArrayList
CopyOnWriteArrayList引入 模拟传统的ArrayList出现线程不安全的现象 public class Demo1 { public static void main(String[ ...
- vue-cli目录结构分析
vue3初始化一个项目,查看其项目结构,会发现比vue2的更加简洁. package.json说明 项目的配置文件,定义了项目的基本信息以及项目的相关包依赖,npm运行命令等,位于项目根目录. scr ...
- redis: Set集合类型(五)
Set里面的值是不能重复的 Set设置值(头部):sadd myset hello Set获取值:smembers myset 检查Set是否包含某个元素:sismember myset hello ...
- ntp和chrony
目录 chrony 简介 ntp pool ntp 配置文件 chrony 配置文件 chronyc 命令行工具 修改时区 chrony 简介 chrony 是 RedHat 开发的,它是网络时间协议 ...