常数:
圆周率:
- matlab中存在一些已经规定好的常量,你给常量,例如:给pi赋值,matlab会认为你是创建了一个叫作pi的变量,但是修改之后就会把它常数的意义覆盖,对函数也是如此,所以还是不要对这些常量做赋值,例如:圆周率pi、虚数i;
复数:
- 输入i,会返回如下图的一串,未选中部分0.00000是i的实部,选中部分1.00000是i的虚部,然后可以做有关复数的运算
- 因为在物理学中,用j代表虚数,所以我们输入j也可以表示虚数:
- 因为呢,有时候我们写for循环习惯用到i或j来作循环限制条件,这时候原本 i 与 j 的意义就会被覆盖1,可以通过在 i 或 j 的前面加上数字1来告诉matlab你要表示的是虚数,*号可以省略
正无穷与负无穷:
- Inf表示正无穷,加个负号就表示负无穷-Inf,例如:1/0就会产生正无穷,-1/0就会产生负无穷,而1除以正无穷就是0
NaN:Not a Number
- 这就已知,double支持正无穷、负无穷、NaN的形式
随机数:
命令形式:
- 命令行窗口输入形式:rand()或rand,记得输入时,键盘要是英文状态
怎么来的:
- 从上图发现,matlab给的随机数在经过rng命令之后,重复了,这是因为matlab中的随机数其实是算出来的,本质上应该叫伪随机数 ,本质上matlab中的随机数是matlab中的一个函数产生的,这个函数的图是一个没有规律,但是变化速率又非常快,就是震荡频率很快,如下图,这就导致,当x = 1和x = 1.00000001时,虽然自变量很接近但是它们的结果却可能差别很大
- 但是当我们每一次去启动这个函数,它总是从x = 1开始,就是如果你输入rand,那么matlab会让x = 1,然后得出0.417返回,而这随机数的第一个值通常叫随机数种子,然后后一次将前一次的结果,即x = 0.417作为输入再产生结果就是0.7203,以此类推,那么这个rng(1)的意义就是让matlab从头来,就是再次让x = 1,于是就会产生相同的随机数,也是伪随机数,这里面的1是可以更改的,但是最后会取整数部分,所以你改成0.2和0.3产生的随机数是一样的
返回不同性质的随机数:
- randn()是让matlab产生正态分布的随机数
- randi([a,b])是返回一个在a~b范围内的随机整数,包括a与b
真正的随机数:
- 我们都知道,直接用命令rand()产生的是伪随机数 ,而我们如何产生真正意义上的随机数呢,可以使用rng('shuffle')命令让matlab根据你当前的日期(年、月、日),时间(时、分、秒)来作为其中专门产生随机数的函数的输入来产生一个结果,这样基本上就不会出现重复的情况