预定义的变量
- ans:计算结果的默认值,如果一条表达式有返回值,但没给它变量接收,那么就会给ans赋值为这次的结果
- eps:相对精度,貌似是一个较小值,就是如果两者的差值小于它就认为是相等的
- Inf和inf:无穷大
- i或j:虚数单位
- pi:圆周率
- NaN或nan:非数,如遇到0/0
- Nargin:函数输入的变量数目
- narout:函数输出的变量数目
- realmax:最大正实数
- realmin:最小正实数
复数:sd = 5 + 6i
或sd = 5 + 6j
矩阵
A = [2 3 4;3 2 4]
% 2 3 4
% 3 2 4
% 可以这样初始化一个矩阵
Tips:
对于加了
;
的语句运行:不会在下面输出结果,而直接保存在工作区对于一次执行多行:按住
shift
+enter
就会跳转到下一行对于同行输出多个表达式:每个表示式使用
;
或,
隔开对于一行写不完:使用
...
进行标记,相当于拼接了下面一行的,注意在''
之间不能添加它,应该在其左右之前添加'
常用的操作命令
- cd
- clf:清除当前窗口图形
- clc:清除了显示的内容还清楚了工作区
- clear:只清除了工作区
- dir:显示目录
- whos:显示变量信息
- exit和quit
- md:创建目录
- more:使其显示的内容分页展示
- type:显示指定的文件
- close:关闭指定的图像窗口
- help:查看指定命令用法
- lookfor:连解释中包含都会被搜出,更像知道功能,但不知函数是什么
矩阵
创建矩阵
row = [e1, e2, ...]
row1 = [e1, e2, ...]
A = [row, row1, ...]
% 可以这样先把每行给出,在把每行整合起来
创建给定步长的向量
a = 2:2:20
% 初值:步长:终值
% 步长默认为1,1:3==>1,2,3
创建特殊矩阵函数
- zeros:全为0
- ones:全为1
- diag:对角为1
- eye:单位矩阵
- magic:魔方矩阵
- pascal:
- rand:随机产生均匀分布的矩阵
- randn:随机产生正态分布的矩阵
- randperm:返回指定元素的一个排列
矩阵的合并
有矩阵A,B
C=[A B]
水平合并
C=[A;B]
垂直合并
矩阵的元素的定位
下标从1开始,用的
()
不是[]
这个访问
- 单下标:就是看作在一维的下标
- 全下标:就是正常的如
A(2, 3)
表示第2行3列的元素
矩阵的多行多列的访问
A = rand(2, 3)
B = A(:,1:2)% 或B = A(:,[1, 2])
多项式
类型
结构体
Map
表
M文件
一种matlab的脚本
- 脚本式M文件
没有输入,不返回结果,重复的执行一个内容,将变量存储在基本工作区,如做一些重复的输入工作,可以把一些变量和值都存在基本的工作区
函数式M文件
这就有点像编程语言了,能有输出和输入
函数式的结构
function [out1, out2, ...] = funName(in1, in2 ...)
% 接下来的注解就是help之后会显示的
% 前面给出输出,可能多个,后面跟着函数名和输入,这是由外部调用后输入的
% 这玩意就相当于定义函数一样,然后调用一样
%{
这玩意叫注释块
可以多行注释
}%
条件控制
if end
if 表达式 执行语句 end
if else end
if 表达式1 执行语句1 else 执行语句2 end
if 多个else
if elseif 表达式... end
switch
switch 语句 case 条件1 执行语句 case 条件2 执行语句 otherwise 执行语句 end
for
for 变量 = 初始值:步长:终值 执行语句 end
while
while 表达式 执行语句 end
continue
break
return
输入输出
- disp:会在输出控制台显示,有点像print
- input:类似py的
- keyboard:不清楚
- pause:可以有参数,指定停止多少时间再继续执行
- ehco:可以设置在之后的执行会显示出来,如当前的变量是什么值,类似ide那种会在变量旁边显示当前值
函数
函数类型
主函数
没什么大差别,主要是定义在最前面,函数名也是文件名,是唯一可以通过命令行调用的函数
子函数
定义在主函数之后的
私有函数
典型的约定规范,在父目录下创建名为private的文件,里面的函数就是私有函数,只有父级目录下的函数才能调用
嵌套函数
在函数内部再定义函数,父函数和子函数都得使用end进行结尾,规定范围,如果没这玩意,貌似就会认为后面全是这个函数的内容,直到有能确定分界的东西
重载函数
匿名函数
函数内部预定义的变量
- nargin:函数输入的变量个数
- narout:函数输出的变量个数
- varargin:可变长的输入列表,就把参数命名成这个,规范😁
- varargout:一样,把输出改成这个变量名就行
句柄:就是类似别名
y = @sin;
然后就可以使用y(pi/2)
相当于sin(pi/2)
eval:就是py的那种效果
feval:
[y1, y2...] = feval(function, x1, x2..)
y就是输出,x就是输入,function就是被调用的方法inline:将eval中能运行的变成函数
异常
try
语句
catch
语句
end
数据可视化
常见命令
- plot:必备命令,查手册
- axis:设置轴
- set:设置刻度
- grid:是否有网格
- box:貌似开始顶部和右边也会有刻度,就像一个盒子一样
图形标记
- title:图形的标题
- xlabel:横坐标轴的名字
- ylabel:纵坐标轴的名字
- legend:图例
- text:标点用的,指定点添加注释,可以使用数学符号,自己找代码
双坐标图
- plotyy:
plotyy(x1,y1,x2,y2[,func1,func2])
如果指定了function那就是化成指定那种曲线,将x1-y1
和x2-y2
在左右轴画出
子图
- subplot:
subplot(n,m,k)
使得n*m
副子图中第k副是当前图
还有其他,自己查手册