在命令行窗口输入 clc ,清除命令行窗口内的所有内容。
输入clear all,清除工作区存储的所有变量和值。
命令行窗口中按住上方向键,可以找出之前输入的命令。
注释:两个%加一个空格,可以注释掉该行的内容。
使用matlab作为计算器,其中表示2的3次方可以用:2^3来表示。^运算符的优先级仅次于小括号
使用时需要注意的是,计算内容应该写在命令行窗口,而非编辑器中。
想得到某个函数的function name,搜索matlab sin等即可。
想知道某个函数的使用方法,在右上角里搜索即可。
或者在命令行窗口输入:help sin,可得到下图
计算下面的式子时,需要知道:自然对数 ln()在matlab里表示为log();
表示自然对数 e 可用:exp(1),exp(n)表示e的n次方;
matlab中变量的使用:
变量无需提前声明,直接A=10;
命令行窗口输入who可以显示当前有的所有变量,输入whos可以得到所有变量及其数据类型、字节长度等信息。
matlab中关键字有哪些:
要特别注意,i、j 不能作为自定义的变量名。
想移除某个已经赋值的变量,在命令行窗口输入clear 变量名
matlab输出小数点后位数控制:
在命令行窗口输入 format 数据类型 并回车,之后输入的数据就都是按照指定数据类型输出。
其中rat的作用是将输入的数转为有理数输出。
matlab矩阵部分:
创建一个矩阵的方法(用方括号[ ] ):
A = [1 2 3; 4 5 6; 7 8 9]同一行的不同元素之间用空格隔开,矩阵内部用 ;实现换行。
找出矩阵中某个值(需要注意,矩阵中的元素是从上到下,从左到右排列的):
方法和找数组元素类似。
如上面的A矩阵而言,A(2,3)就是第二行第三列的元素,即6.
特殊方式:A( [ 1 2 ],[ 1 3 ] ),意为取A矩阵中第一行的第1、3列元素以及第三行的第1、3列元素。
A( [ 1 3 5 ] )取A矩阵中的第1、第3、第5个元素。
A([1 2 ;1 3])取A矩阵第1、第2个元素,然后换行,再取第1、第3个元素。
如下图:
矩阵转置:
B = A ’ 表示将B定义为:A的转置矩阵。
建立等差矩阵(利用conlon operator“:”):
A=[ 1:5 ],则A=1 2 3 4 5;
A=[ N:步长:M ]。
“:”作为index使用时可以表示全部,例如A(3,:)就是输出A矩阵第三行的全部元素。
结合上一行的内容以及matlab可以对矩阵元素赋值的特性,可以实现将某一行or列元素从原矩阵中删除,只需A(3,:)=[],即可将A矩阵的第三行清空。
矩阵的四则运算:
正常四则不赘述,介绍3种特殊四则运算。
(1)点乘运算
C = A .* B :注意这个点乘不是向量点乘,而是对应项相乘的意思。如下图
(2)除法运算:
C = A / B 意即:A乘inv(B)
(3)点除运算:
D = A ./ B,对应项相除,这里的除法是正常四则里的除法(即数与数之间的除法),区别于矩阵的除法。
(4)power运算:
A=A^2,即A=A*A;
(5)点power运算:
A=A .^ 2,即A=A和A的对应项相乘。
特别的,matlab中不仅有矩阵的数乘运算(A=kA),还有矩阵的数加运算(A=A+a),意为将矩阵A的每个元素都加上数值a
寻找指定矩阵中大于/小于/等于某个指定值的元素的下标:
[m , n] = find(A > 20),意为寻找A矩阵中元素值大于20的所有元素,将行下标返回到m中,列下标返回到n中,输出结果中同一行的下标相对应。如下图
矩阵拉长:
C = A(:)表示将C定义为:A的按列顺序拉长矩阵,即:如果原来A是 m X n 型矩阵,则C是 (m+n) X 1 型矩阵,矩阵的元素从上到下分别是原矩阵A第一列的所有元素、第二列的所有元素……第n列的所有元素。具体效果如下图
矩阵求逆:
D = inv(A),将D定义为A矩阵的逆矩阵,这也就意味着只有当A为方阵时才能使用求逆符。
创建0矩阵:
E = zeros(10,5,3),其中三个数字的意思分别是:10行、5列、3维(几维表示有几个这样的矩阵,可以理解为E是一个数据类型为0型矩阵的数组,可以用 E( : , : , 1)、E( : , : , 2)、E( : , : , 3)分别表示该数组的第1、2、3个元素)。
创建单位矩阵:
F = eye(3),创建一个3 x 3型的单位矩阵。
创建全1矩阵:
H = ones(2 , 4),创建一个2 x 4型的全1矩阵。
创建全n矩阵:
J = ones(2 , 4)*n,创建一个2 x 4型的全n矩阵。
生成幻方矩阵:
G = magic(3),创建一个3 x 3型的幻方(幻方是一个特殊矩阵,同一个幻方的每一行、每一列、每一对角线上的所有数字之和都相同,在n x n型幻方中,容易证明,这个和为 n*(n*n+1)/2 )
生成随机数函数:
创建元胞数组:
A = cell(1,6),意为创建一个1行6列的数组,其中每个元素可以属于不同的数据类型。效果如下图
访问元胞数组元素(元胞数组元素编号从1开始):
A{2}可以访问元胞数组中第二个元素。
结构体
创建一个结构体并初始化的语法如下(上面是语句,下面是运行结果):
访问结构体成员:
(1)小括号访问方式:books.name(1)取出的是name两个成员中的第一个成员,属于cell类型
(2)大括号访问方式:books.name{1}取出的也是name两个成员中的第一个成员,是一个字符串,它的值就是字符串本身。
在一定范围内按指定步长取值:
B = 1:2:9 ,意为在1到9的范围内,从1开始,按步长为2取值,容易知道B = 1,3,5,7,9。
复制矩阵(分块矩阵的构建):
C = repmat(B , 3 , 2),意为将B这个东西重复3行2列,将结果赋给C。结果如下
常用function:
>>max(A),在同一行内输出A矩阵的每一列的最大元素
>>max(max(A)),输出矩阵A的最大值
min函数同max函数。
>>sum(A),同一行输出矩阵A每一列元素的总和;
>>sum(sum(A)),A矩阵所有元素总和;
>>mean(A),同一行输出矩阵A每一列元素的平均数;
>>mean(mean(A)),……
>>sort(A),每一列元素按从小到大排序,小数在上;
>>sortrows(A),将一行元素作为一个整体,比较每两行之间元素的同一列元素的大小,小的排到上面,具体看下图;
>>find(A==6),即找出矩阵A中等于6的元素,输出其下标。
>>size(A),若矩阵是M×N型的矩阵,则输出M N;
>>length(A),即输出矩阵A的元素个数。
逻辑与流程控制
循环语句
while循环:
条件语句:
switch语句:
注意与C语言中的default不同,这里用的是otherwise
二维平面绘图:
效果图如下:
想要让后面不留空隙就使用xlim[0 2*pi],将显示出的x的范围限定在0到2*pi