前言:
这学期已经忙得要死了,还作死报了数学建模,关键是选了数学建模选修课,还要写作业,那就学习一下MATLAB吧,算是了解一下擅长数值计算或者说科学计算的编程语言
本系列博客记录MATLAB学习过程,非编程零基础
可交互式编程的命令式语言
MATLAB 的语言是一种类似于Python的可交互式编程的命令式语言
一些基本特点
语句末尾带不带 ; 均可,不带 ; 立即输出当前运算结果
多行代码用续行符 … ,
大小写敏感, 所有系统函数均为小写
下标从1开始,下标访问使用()
矩阵元素列优先存储
面向矩阵运算的特性
MATLAB 产生于矩阵运算,常用数学函数的参数都定义为矩阵变量,标量则是矩阵变量的特例。函数在运算时是将函数逐项作用于矩阵的每个元素上,运算结果是一个与自变量同型的矩阵
标识符的解析顺序
MATLAB 的标识符解析顺序:
变量 → 内部函数 → 程序文件(当前文件夹下的程序文件 → 文件搜索路径文件夹中的程序文件)
如
>>sin(1)
sin(1)
= 0.8415
>>sin = [1,2,3,4,5]
>>sin(1)
sin(1)
= 1
//sin被先解释为变量sin,此时删除sin变量后可以正常使用sin函数
所以尽量不要使用内部函数名作为变量名,以免屏蔽函数
MATLAB数值数据类型及特点
- 整型
有符号、无符号8位、16位、32位、64位 - 浮点型
单精度 single 4字节、双精度 double 8字节
MATLAB中数值数据默认为double型 - 复数型
复数型数据包括实部和虚部两部分,均默认为double型,虚数单位用 i 或 j 来表示,real()取得复数实部,imag()取得虚部
MATLAB的类型转换使用的是数据类型转换函数,如uint8()、转换为无符号8位,int8()、转换为有符号8位,single()、转换为单精度
数据类型转换函数转换越界数据时不会产生溢出效果,到达极值返回
class()函数获得变量类型
数值数据的输出格式
作用于全局的format命令的使用:format 格式符
格式符:long(保留15位小数),short(保留4位小数,默认格式)
format命令只改变数据输出格式,而不影响数据的计算和存储
常用数学函数
-
面向矩阵运算的特性
与上面提到的相同>>A = [4,2;3,6] A = 4 2 3 6 >>B = exp(A) B = 54.5982 7.3891 20.0855 403.4288
-
涉及度数的函数按弧度单位与角度单位区分
以角度为单位的函数都在其余函数名后加一个d,表示以角度为单位sin(pi/2) sind(90)
-
abs()函数 ①求实数的绝对值 ②复数的模 ③字符串的ASCII码值
-
取整函数
fix()、舍去小数,round()、小数点后一位四舍五入,ceil()、ceil天花板 向上取整,floor()、floor地板 向下取整 -
求余函数 rem(),mod()
-
判断素数 isprime() 返回 0 或 1
例子
问题:求区间[1,100]内的所有素数
num = 1:100; // num为从1到100的向量(矩阵)
judge = isprime(num); // 判断num的每一个元素是否为素数,结果保存在judge向量中
judge = find(judge); // 筛选出judge中非0元素 的序号
ans = num(judge); //得到素数向量
2019/4/15