Matlab学习笔记1—MATLAB基础知识
1.1 MATLAB系统环境
1.MATLAB操作界面的组成
(1)MATLAB主窗口
(2)命令行窗口:命令行窗口用于输入命令并显示命令的执行结果。
(3) 当前文件夹窗口
如何设置当前文件夹呢?
(1) 在当前文件夹工具栏或当前文件夹窗口中选择某文件夹为当前文件夹
(2)使用cd命令
(4)工作区窗口
2.MATLAB的搜索路径
(1)用path命令设置文件搜索路径。例如:
>> path(path,'e:\work')
(2)用对话框设置文件搜索路径。
3,两个问题
(1) 如果在当前文件夹和搜索路径文件夹下建立了一个同名的M 文件,那么在命令行窗口输入文件名时,执行哪个文件?
(2)如果用户建立的文件既没有保存在当前文件夹下,也没有 保存在文件搜索路径中,那么在命令行窗口输入文件名时, 会出现什么信息?
第一个问题根据MATLAB的搜索路径,程序文件的搜索顺 序是首先在当前文件夹中搜索,然后再在文件搜索路径 中的文件夹中搜索,所以执行的是当前文件夹下的M文件。 第二个问题,同样根据MATLAB的搜索路径,如果用户建 立的文件既没有保存在当前文件夹下,也没有保存在文 件搜索路径中,那么MATLAB就找不到这个文件,系统会 给出错误提示信息。
1.2 MATLAB数值数据
1.数值数据类型的分类
(1)整型
无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、无符号64位整数。
无符号8位整数数据范围:00000000~11111111(0~28-1)。
带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、带符号64位整数。
带符号8位整数数据范围:10000000~01111111(-27~27-1)。
int8():将无符号位整型转成带符号位整形。
uint8():将有符号位整型转成无符号位整形。
(2)浮点型
single函数:将其他类型的数据转换为单精度型。
double函数:将其他类型的数据转换为双精度型。
class函数:输出数据类型
(3)复型
复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数 单位用i或j来表示。
real函数:求复数的实部。
imag函数:求复数的虚部。
2.数值数据的输出格式
format命令的格式: format 格式符。
3.常用数学函数
(1)函数的调用格式为:函数名(函数自变量的值)
(2)常用函数的应用
① 三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以 角度为单位的函数就在函数名后面加“d”,以示区别。
② abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。
③用于取整的函数有fix、floor、ceil、round。
④函数应用举例。
(1)分别求一个三位正整数的个位数字、十位数字和百位数字。
(2)求[1,100]区间的所有素数。
1.3 变量及其操作
1.变量与赋值语句
在MATLAB中,变量名是以字母开头,后接字母、数字或下画线的字符序列, 最多63个字符。
变量名区分字母的大小写。
标准函数名以及命令名必须用小写字母。
2.预定义变量
预定义变量是在MATLAB工作空间中驻留,由系统本身定义的变量。
(1) ans是默认赋值变量
(2) i和j代表虚数单位
(3) pi代表圆周率
(4) NaN代表非数
3.变量的管理
(1)内存变量的删除与修改
who命令与whos命令
(2)内存变量文件
用于保存MATLAB工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件。
save命令:创建内存变量文件。
load命令:装入内存变量文件。
1.4 MATLAB矩阵的表示
1.矩阵的建立
(1)利用直接输入法建立矩阵:将矩阵的元素用中括号括起 来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗 号或空格分隔,不同行的元素之间用分号分隔。
(2)利用已建好的矩阵建立更大的矩阵: 一个大矩阵可以由已经建立好的小矩阵拼接而成。
(3)可以用实部矩阵和虚部矩阵构成复数矩阵
2.冒号表达式
3.结构矩阵和单元矩阵
(1)结构矩阵
由结构数据构成的矩阵就是结构矩阵,结构矩阵里的每个元素 就是结构数据类型。
格式为: 结构矩阵元素.成员名=表达式
(2)单元矩阵
建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵元 素用大括号括起来。
1.5 矩阵元素的引用
1.矩阵元素的引用方式
(1)通过下标来引用矩阵的元素
A(3,2)表示A矩阵第3行第2列的元素。
注意:如果给出的行下标或列下标大于原来矩阵的行数和列数, 那么MATLAB将自动扩展原来的矩阵,并将扩展后没有赋值的矩阵 元素置为0。
(2)通过序号来引用
在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元素,…,一直到矩阵的最后一列元素。
矩阵元素的序号就是矩阵元素在内存中的排列顺序。
序号与下标是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序 号为(j-1)×m+i
sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:
2.利用冒号表达式获得子矩阵
子矩阵是指由矩阵中的一部分元素构成的矩阵。
A(i,:) 第i行的全部元素
A(:,j)第j列的全部元素
A(i:i+m,k:k+m)第i~i+m行内且在第k~k+m列中的所有元素
A(i:i+m,:) 第i~i+m行的全部元素
end运算符:表示某一维的末尾元素下标。
3.利用空矩阵删除矩阵的元素
空矩阵是指没有任何元素的矩阵。
4.改变矩阵的形状
reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重 新排成m×n的二维矩阵。
注意:reshape函数只是改变原矩阵的行数和列数,但并不改 变原矩阵元素个数及其存储顺序。
A(:) :将矩阵A的每一列元素堆叠起来,成为一个列向量。
A(:)等价于reshape(A,6,1)。
1.6 MATLAB基本运算
1.算术运算
(1)基本算术运算
基本算术运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。
注意:MATLAB的算术运算是在矩阵意义下进行的。
单个数据的算术运算只是矩阵运算的一种特例。
加减运算
若两矩阵同型,则运算时两矩阵的相应元素相加减。
若两矩阵不同型,则MATLAB将给出错误信息。
一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。
乘法运算
矩阵A和B进行乘法运算,要求A的列数与B的行数相等,此时则称A、B矩阵是可乘的,或称A和B两矩阵维数和大小相容。
如果两者的维数或大小不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。
除法运算
在MATLAB中,有两种矩阵除法运算:右除/和左除\。如果A矩阵是非奇异方阵,则B/A等效于B*inv(A),A\B等效于inv(A)*B。
乘方运算
一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。
(2)点运算
点运算符:.*、./、.\和.^。
两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型。
2.关系运算
关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等 于)、==(等于)、~=(不等于)。
当两个比较量是标量时,直接比较两数的大小。若关系成立,关系 表达式结果为1,否则为0。
当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩
阵,它的元素由0或1组成。
当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,最终的关系运算的结果是一个与原矩阵同
型的矩阵,它的元素由0或1组成。
3.逻辑运算
逻辑运算符:&(与)、|(或)和~(非)。设参与逻辑运算的是两个标量a和b,那么运算规则为:
a&b a、b全为非零时,运算结果为1,否则为0。
a|b a、b中只要有一个为非零时,运算结果为1。
~a 当a为零时,运算结果为1;当a为非零时,运算结果为0。
若参与逻辑运算的是两个同型矩阵,那么将对矩阵相同位置上的元素按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。
若参与逻辑运算的一个是标量,一个是矩阵,那么将在标量与矩阵中的每个元素之间按标量规则逐个进行运算,最终运算结果是一个与矩阵同型的矩阵,其元素由1或0组成。
水仙花数是指各位数字的立方之和等于该数本身的三位正整数。 求全部水仙花数。
1.7 字符串处理
1.字符串的表示
在MATLAB中,字符串是用单引号括起来的字符序列。
若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。
建立多行字符串,形成字符串矩阵。
建立一个字符串向量,然后对该向量做如下处理:
① 取第1~5个字符组成的子字符串。
② 将字符串倒过来重新排列。
③ 将字符串中的小写字母变成相应的大写字母,其余字符不变。
④ 统计字符串中小写字母的个数。
2.字符串的操作
(1) 字符串的执行
格式: eval(s)
(2)字符串与数值之间的转换
abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。
char函数可以把ASCII码矩阵转换为字符串矩阵。
(3)字符串的比较
字符串的比较有两种方法:利用关系运算符或字符串比较函数。
关系运算符比较:两个字符串里的每个字符依次按ASCII值大小逐 个进行比较,比较的结果是一个数值向量,向量中的元素要么是1 ,要么是0。
字符串比较函数用于判断字符串是否相等,有4种比较方式,函数如下:
strcmp(s1,s2):用来比较字符串s1和s2是否相等,如果相等,返回结果为1,否则 返回0。
strncmp(s1,s2,n):用来比较两个字符串前n个字符是否相等,如果相等,返回1, 否则返回0。
strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相 等,返回1,否则返回0。
strncmpi(s1,s2,n):在忽略字符串大小写前提下,比较两个字符串前n个字符是否 相等,如果相等,返回1,否则返回0。
(4)字符串的查找与替换
findstr(s1,s2):返回短字符串在长字符串中的开始位置。
strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符 串s3。
Matlab学习笔记1—MATLAB基础知识的更多相关文章
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- FreeRTOS学习笔记——FreeRTOS 任务基础知识
RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习RTOS 系统的工程师或者学生主要就是为了使用RTOS 的多任务处理功能,初步上手RTOS 系统首先必须掌握的也是任务的创建 ...
- 《Python基础教程(第二版)》学习笔记 -> 第一章 基础知识
写笔记的原因:书也看了一遍,视频也看了,但总是感觉效果不好,一段时间忘记了,再看又觉得有心无力,都是PDF的书籍,打开了就没有心情了,上班一天了,回家看这些东西,真的没多大精力了,所以,我觉得还是把p ...
- 【 学习笔记 】memcached基础知识
源地址:http://kb.cnblogs.com/page/42731/ 仔细学习了下,以下是记录的笔记备忘内容. 一.memcached是什么? memcached是高性能的分布式内存缓存服 ...
- linux学习笔记:1.基础知识和命令行基本操作
初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...
- libevent学习笔记 一、基础知识【转】
转自:https://blog.csdn.net/majianfei1023/article/details/46485705 欢迎转载,转载请注明原文地址:http://blog.csdn.net/ ...
- MySQL学习笔记01_数据库基础知识
01_1 mysql数据库启动与停止 以<管理员权限>启动cmd: 输入net stop mysql停止mysql服务: 输入net start mysql启动mysql服务: 输入mys ...
- Spring基础学习笔记-Bean的基础知识
一. Bean的定义,初始化,使用和销毁 二.ref指定依赖的三种模式 三.Bean的五种自动装配模式(autowire) 四.Bean依赖检查的4种模式:配合atuowire使用,dependenc ...
- CSS学习笔记1:基础知识
CSS规则由两部分组成,选择器和声明 选择器:标签,告诉浏览器哪些标签需要用到这个样式 声明:样式的内容,由一或多对属性:值以:隔开组成,由{}包围,需要多个选择器时以逗号隔开 ...
随机推荐
- java 枚举的用法
public enum StatisticTableEnum { DOC_BROWSE_STATISTIC("doc_browse_statistic"), DOC_LIB_BRO ...
- SELinux 对nginx访问目录的影响
centos新装的系统,用yum 安装的nginx . 因用yum 安装的nginx 默认目录在/usr下面. 当SELinux开启时,将会禁止访问设置在其他路径下的地址.比如我设置server 中 ...
- noi.ac NA536 【打地鼠】
又一道可写的小清新思维题 其实想到倒着做了,然而还是因为T1害人不浅(我太菜了),所以并没有写 考虑两个局面不同,显然至少打了一次地鼠,基于操作的颜色覆盖性质,我们可以考虑把操作倒着做,对于一个X点, ...
- 【洛谷P1280】尼克的任务
题目大意:一个人在时间 [1,N] 内工作,现有 M 个任务,每个任务需要在一段固定的时间区间内完成,任务之间的时间可能有重叠.若当前时间有任务要开始,且人处于空闲状态,则一定要这个人来做,否则这个人 ...
- 记Springcloud Config Service整合gitlab一坑
spring.cloud.config.server.git.uri=http://ip/***/configserver.git必须加上.git
- 如何在输入命令行npm run dev 之后vue项目自动在浏览器打开
使用代码编辑器打开vue项目代码,在config文件夹里面找到index.js 将里面的:autoOpenBrowser: false, 修改为 :autoOpenBrowser: true, 这个方 ...
- B. Chocolates
B. Chocolates time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- sqlmap自动注入 --DETECTION
--level /usr/shar/sqlmap/xml/payloads 多个脚本 sqlmap里面的payload都在这里面 --risk 1-4(默认 1/ 无害) Risk升高可造成数据被串改 ...
- Java常考面试题整理(六)
101.HTTP相应的结构是怎么样的? 参考答案: HTTP相应由三个部分组成: 1.状态码(status code):描述了相应的状态,可以用来检查是否成功的完成了请求.请求失败的情况下,状态码可以 ...
- crossdomain.xml解决跨域问题
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...