博主快速入门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=[13​24​]
  • 单元型数据;
  • 结构型数据;

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=[13​24​],B=[5678]B = \left[\begin{matrix} 5 & 6 \\ 7 & 8 \\ \end{matrix}\right]B=[57​68​],则A乘B为 A∗B=[19224350]A*B=\left[\begin{matrix} 19 & 22 \\ 43 & 50 \\ \end{matrix}\right]A∗B=[1943​2250​],则A点乘B为A.∗B=[5122132]A.*B=\left[\begin{matrix} 5 & 12 \\ 21 & 32 \\ \end{matrix}\right]A.∗B=[521​1232​]

右除和点右除,左除和点左除都是同样的道理,这里不再赘述。

2.5 关系运算符

运算符 作用
== 等于
~= 不等于
>= 大于等于
> 大于
<= 小于等于
< 小于

2.6 逻辑运算符

运算符 作用
&& 逻辑与
|| 逻辑或
~ 逻辑非
xor 逻辑异或
any 非零元素为真
all 所有元素非零为真

3 函数运算

上面时最基本的四则运算,通常在实际的项目中,还需要对复数,三角函数,指数等进行计算,那么可以直接调用matlab提供的函数。

3.1 复数运算

下面通过复数1+1i进行各个复数运算函数的测试;

  • abs1+1i的模应该为2\sqrt22​;
  • angle1+1i的相角应该为45°,即π4\cfrac{\pi}{4}4π​
  • complexcomplex(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语言类似,它一般用来终止 forwhile 循环, 通常与 if 条件语句结合在一起使用 ,如果条件满足则利用 break 命令将循环终止。在多层循环嵌套中, break 只终止最内层的循环
  • continue:该命令通常用在 forwhile 循环结构中, 并与 if 一起使用 ,其作用是结束本次循环,即跳过其后的循环语句而直接进行下一次是否执行循环的判断 ;
  • pause:使程序暂停;
  • return:函数返回;

5 总结

将这段时间matlab的学习,简单总结了一下,当然这只是冰山一角,不过已经足够去编写一些程序了。

本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教
创作不易,如果本文帮到了您;
请帮忙点个赞 ;
请帮忙点个赞 ;
请帮忙点个赞 ;

【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)的更多相关文章

  1. Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式

    概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...

  2. WebBug靶场基础篇 — 02

    本篇以第一人称记录这个关卡的第 1-5 关. 由于我记录的过程有点偏向于思考,所以截图截的多 = =!所以文章有点长... 下午一觉醒来,已经 4 点多了,然后开电脑,在虚拟机里,铺了铺靶场,但是毕竟 ...

  3. iOS开发基础篇-Button基础

    一.简单介绍  UIButton 的功能:响应用户操作.显示文字.显示图片.调整内部图片和文字的位置. 二. UIButton 的状态  UIControlStateNormal :普通状态,为默认情 ...

  4. MySQL基础篇(02):从五个维度出发,审视表结构设计

    本文源码:GitHub·点这里 || GitEE·点这里 一.数据场景 1.表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的 ...

  5. iOS系列 基础篇 02 StoryBoard 故事板文件

    iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyb ...

  6. Java基础篇(02):特殊的String类,和相关扩展API

    本文源码:GitHub·点这里 || GitEE·点这里 一.String类简介 1.基础简介 字符串是一个特殊的数据类型,属于引用类型.String类在Java中使用关键字final修饰,所以这个类 ...

  7. 【matlab 基础篇 03】一文带你全面了解 plot 绘图函数的使用(超详细+图文并茂)

    快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 文章目录 1 前言 2 plot 2.1 显示正弦波 2.2 修改颜色 2.3 修改点的形状 2.4 修改线的形状 ...

  8. C#基础篇02

    首先:一个完整的方法是包括两部分的,代码和注释!!!! 程序的调试: 3:设置断点:  断点之前的程序已经确保正确,可是在断点后的部分可能出现错误,所以设置完断点后,直接点击启动,然后按F11逐步棸的 ...

  9. Java岗 面试考点精讲(基础篇02期)

    1. 两个对象的hashCode相同,则equals也一定为true,对吗? 不对,答案见下面的代码: @Override public int hashCode() { return 1; } 两个 ...

随机推荐

  1. L25词嵌入进阶GloVe模型

    词嵌入进阶 在"Word2Vec的实现"一节中,我们在小规模数据集上训练了一个 Word2Vec 词嵌入模型,并通过词向量的余弦相似度搜索近义词.虽然 Word2Vec 已经能够成 ...

  2. 数据结构(C语言版)---栈

    1.栈:仅在表尾进行插入和删除操作的线性表.后进先出LIFO. 1)表尾端(允许插入和删除的一端)为栈顶,表头端(不允许插入和删除的一端)为栈底. 2)入栈:插入元素的操作.出栈:删除栈顶元素 3)栈 ...

  3. 6.表单提交,input键盘变搜索,有关自定义属性input操作

    1.键盘变搜索 1.) 在form 上加action="#", 2.)input type=search, 3.)此时会提交到 #,需要再添加一个input display=non ...

  4. js上传文件前判断获取文件大小并且加以判断

    描述:要求浏览器单个上传文件大小不超过10M. 解决方案: var fileSize = $("#fileId")[0].files[0].size/(1024*1024);if( ...

  5. Ubuntu创建WiFi:16.0.4

    点击编辑链接,点击桌面状态栏的网络图标 点击增加 类型选择WiFi 名称.SSID,均要填写,模式选择:热点 wifi安全性:选择一个安全模式,这里选的是, wpa 及 wpa2个人 必须说的是:选择 ...

  6. Linux必须会的命令---也是以前记录的,ctrl+z fg 啥的 jobs 比较实用

    fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一.& 最经常被用到 这个用在一个命令的最后,可以把这个命令 ...

  7. CSS中“~”(波浪号)、“,”(逗号)、“+”(加号)、“>”(大于号)、“ ”(空格)详解

    “~”:$('pre ~ brother')表示获取pre节点的后面的所有兄弟节点,相当于nextAll()方法: “+”:$('pre + nextbrother')表示获得pre节点的下一个兄弟节 ...

  8. 2019-2020-1 20199308《Linux内核原理与分析》第四周作业

    <Linux内核分析> 第三章 MenuOS的构造 3.1 Linux内核源代码简介 操作系统的"两把宝剑" 中断上下文:保存现场和恢复现场 进程上下文 目录结构 ar ...

  9. Test Test...

    标题: Test(一级标题) Test(二级标题) Test(三级标题) 列表: test(列表) Alpha Beta Gamma test 2 Delte Epsilon 链接: 点兔成金斐波那契 ...

  10. Spring框架中文件目录遍历漏洞 Directory traversal in Spring framework

    官方给出的描述是Spring框架中报告了一个与静态资源处理相关的目录遍历漏洞.某些URL在使用前未正确加密,使得攻击者能够获取文件系统上的任何文件,这些文件也可用于运行SpringWeb应用程序的进程 ...