matlab 转换为正整数_【MATLAB】专题1笔记 MATLAB基础知识
视频课程参考:https://www.bilibili.com/video/BV19J411W7Ta

数值问题-->求解算法-->程序实现-->结果分析
MATLAB 功能 :数值计算,符号计算,图形绘制,程序流程绘制,工具箱
数值计算方法:迭代法,二分法,割线法
1.1 MATLAB系统环境
1.窗口
(1)主窗口(2)命令行窗口 >>命令提示符 …续行符 (3)当前文件夹窗口
如何将当前目录设为某个特定的目录?1. 首先,在终端界面的current directory panel(或current directory window)中选定目标目录;2. 然后通过执行cd命令来完成设置
先建立文件夹,再将当前文件夹设置为当前文件夹
(4)工作区窗口 变量的显示,保存,删除等
2.MATLAB的搜索路径
变量名→内部方法→本目录下的程序→当前目录下的程序→路径下的程序
| >> clear>> x=sin(1)x = 0.8415>> sin=[1,2,3,4,5] 建立一个与正弦函数同名的变量sin = 1 2 3 4 5>> x=sin(1) 说明这个变量是引用sin的第一个元素 说明MATLAB的变量名优先r |
|---|
如何设置文件搜索路径?
1.用Path命令设置文件搜索路径 e.g. >>path(path,'e\work)
2.用对话框设置文件搜索路径
1.2MATLAB数值数据
1.数据类型的分类
(1)整型:无符号整数,带符号整数
e.g. 无符号9位整数数据范围:00000000~11111111 (0~)
带符号8位整数数据范围:10000000~01111111 (-)
MATLAB支持数据类型转换功能以实现不同类型数据之间的转换过程。例如,uint8函数负责将数值型数据转换为无符号八位整数格式的数据类型;而int8函数则用于将数值型数据转换为带符号八位整数格式的数据类型。
(2)浮点型:单精度、双精度
单精度型实数在内存中占用4个字节,双精度型实数在内存中占用8个字节
single函数:其他类型的数据转换为单精度型
double函数:其他类型的数据转换为双精度型
| >> class(4)ans = 'double'>> class(single(4))ans = 'single' |
|---|
(3)复数型 : 实部,虚部 实部和虚部默认为双精度型,虚数单位用i或j来表示
real函数:求复数的实部
imag函数:求复数的虚部
2.数值数据的输出格式
fomat 命令的形式:在 format 命令中使用特定的格式符来设置输出格式。这些设置仅控制数据的输出格式,并不影响数据的计算结果及存储信息。
| >> format long>> 50/3ans = 16.666666666666668>> format 默认short>> 50/3ans = 16.6667 |
|---|
3.常用数学函数
(1)函数的调用格式: 函数名(函数自变量的值)
在函数中定义的自变量参数通常被设定为矩阵类型;然而也可以选择标量作为输入值;值得注意的是,标量实际上属于矩阵的一种特殊情况。
在运算过程中,在输入矩阵的基础上将函数逐项作用于每一个元素上;经过全部运算后的结果将形成一个与输入变量具有相同结构的矩阵。
| >> A=[4,2;3,6] 矩阵A,2行2列A = 4 2 3 6>> B=exp(A) 调用exp函数,求自然指数,自变量为矩阵AB = 54.5982 7.3891 B也是一个矩阵,每一个元素都是A对应元素求自然指数得来的 20.0855 403.4288 |
|---|
(2)常用函数的应用
1️⃣ 三角函数主要分为两类:一类是以弧度为单位的函数,另一类是以角度为单位的函数。若采用角度制,则需在相应的函数名称后附加字母d以区别两者。
| >> sin(pi/2)ans = 1>> sind(90)ans = 1 |
|---|
2️⃣abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值
| >> abs(-4)ans = 4>> abs(3+4i)ans = 5>> abs('a')ans = 97 |
|---|
3️⃣用于取整的函数:fix floor ceil round
round:按照四舍五入的规则取整
ceil:向上取整,取大于等于这个数的第一个整数
floor:向下取整,取小于等于这个数的第一个整数
fix:固定取靠近0的那个整数,即舍去小数取整
| Q.求三位正整数的个位数字、十位数字、百位数字>> m=345m = 345>> m1=rem(m,10) m除10的余数赋值给m1m1 = 5>> m2=rem(fix(m/10),10) 先对345除10的结果取整,为34,再34除10的余数m2 = 4>> m3=fix(m/100)m3 = 3 |
|---|
| 求1~100区间所有的素数 matlab提供了一个判断n是否为素数的函数 isprime(n),当n是素数时返回1,否则返回0.>> x=1:100x = 1 至 15 列 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 至 30 列 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 至 45 列 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 至 60 列 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 至 75 列 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 至 90 列 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 至 100 列 91 92 93 94 95 96 97 98 99 100>> k=isprime(x) 调用函数,要么为1要么为0k = 1×100 logical 数组 1 至 22 列 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 23 至 44 列 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 45 至 66 列 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 67 至 88 列 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 89 至 100 列 1 0 0 0 0 0 0 0 1 0 0 0>> k1=find(k) k1向量中的元素为k向量中非0元素的序号k1 = 1 至 15 列 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 16 至 25 列 53 59 61 67 71 73 79 83 89 97>> p=x(k1)p = 1 至 15 列 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 16 至 25 列 53 59 61 67 71 73 79 83 89 97 |
|---|
1.3 变量及其操作
1.变量与赋值语句
变量:内存单元的抽象,通过一个变量名访问内存单元。
在MATLAB环境中,
变量名称必须以字母开头,
接着可跟字母、数字或下划线,
总共不超过63个字符,
对大小写敏感。
标准函数名以及命令名必须用小写字母。
赋值语句两种格式: 变量=表达式
表达式
|Q.

| >> x=sqrt(7)-2ix = 2.6458 - 2.0000i>> y=exp(pi/2)y = 4.8105>> z=(5+cosd(47))/(1+abs(x-y))z = 1.4395 |
|---|
2.预定义变量
预定义变量是由系统本身定义的变量。
ans是默认赋值变量
i和j代表虚数单位
pi代表圆周率
NaN表示非数值(在绘图过程中需要截取或裁剪一部分数据时,将该区域的数据坐标设置为NaN即可)
3.变量的管理
(1)内存变量的删除与修改 (工作区窗口修改)

who命令和whos命令 显示已经驻留的变量名清单
(2)内存变量文件
用于保存MATLAB工作区变量的文件叫做workfile for MATLAB variables,其名称通常为. mat,也可被称作MAT file.(一种以二进制形式保存数据的文件类型)
save命令:创建内存变量文件。load命令:装入内存变量文件。
save mydata a x 将变量a和x保存在mydata.mat文件中
load mydata
1.4MATLAB的矩阵表示
1.矩阵的建立




2.结构矩阵与单元矩阵
(1)结构矩阵:格式:结构矩阵元素.成员名=表达式
如同构造常规矩阵一样进行操作的话,在知识单元矩阵中每个元素需要用大括号符号表示出来
1.5矩阵元素的引用
1.(1)通过下标来引用矩阵的元素
A(3,2)表示A矩阵第三行第二列的元素
(2)通过序号引用
矩阵元素依次排列为各列形式,在矩阵中按照列的顺序进行组织存放:即先放置第一列的所有元素值随后放置第二列的全部数据…直至完成最后一列的所有数据存储
矩阵元素的序号就是矩阵元素在内存中的排列顺序。
2.利用冒号表达式获得子矩阵
子矩阵是由矩阵中的一部分元素构成的矩阵。


3.利用空矩阵删除矩阵的元素


4.改变矩阵的形状



1.6 MATLAB基本运算
1.算术运算
基本算术运算在MATLAB中是以矩阵为基础进行处理的;其中仅涉及单个数据的运算是矩阵运算的一个特殊情形
基本算术运算+,-,,^(乘方),/(右除),\(左除)
加减运算仅限于同型矩阵之间;允许将标量与每个元素单独相加或相减;当矩阵类型不同时,则返回错误信息
乘法:A的列数等于B的行数(不相容给出错误信息)
除法:A为非奇异矩阵,B/A等效于B* inv(A),B\A等效于inv(A)*B
乘方:A^x,要求A为矩阵,x为标量


(2)点运算


(3)关系运算
< ,<=,>, >=, ==(等于), ~=(不等于)
关系成立,结果为1;不成立,为0
当两个被比较的对象都是同型矩阵时,则表示为对该矩阵对应位置上的元素按照标量运算规则逐一进行处理;经过运算后得到的结果将是一个与原始矩阵尺寸相同的新的矩阵;该新矩阵的所有元素仅包含0和1两种取值。


(4)逻辑运算

计算顺序:算术操作>关系操作>逻辑操作,并非所有非逻辑操作都是单目操作;实际上,在涉及双目操作时,则其计算优先级更高。

2.字符串处理
(1)字符串是用单引号括起来的字符序列。
(2)若字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。
(3)可建立多行字符串,形成字符串矩阵。
(4)字符串的执行:eval(s)
(5)字符串与数值之间的转换:
abs和double函数都能获取对应的字符串矩阵的ASCII码数值矩阵[char函数]将ASCII码数值矩阵转换成字符串矩阵
(6)字符串的比较:可以利用关系运算符或者字符串比较函数。
函数strcmp(s1,s2)用来比较字符串s1和s2是否相等,相等则返回1,否则返回0;
该函数用于判断字符串s1与s2的前n个字符是否相同;若相同则返回数值1,若不同则返回数值0。
该函数名为strcmpi(s1,s2),其在不考虑字母大小写的前提下执行字符串比较操作;判断两个字符串s1与s2是否相同,并输出结果:若两字符串相同,则返回值为1;否则为0。
该函数strncmpi(s1, s2, n)用于不考虑字母大小写的情况下比较字符串s1和s2的前n个字符是否相同。如果两者相同,则返回非零值;否则返回零。
(7)字符串的查找与替换
findstr(s1,s2)返回短字符串在长字符串中的开始位置(s1,s2可互换)
strrep(s1,s2,s3)将字符串s1中的所有子字符串s2替换为字符串s3
