基本用法
-
句末加;表示其结果不输出
-
句末不加; 表示其结果输出
-
增加注释:ctrl+R
-
取消注释 :ctrl+T
-
清除命令行窗口:clc
-
清除工作区变量:clear
-
很多代码的开头都会添加clear;clc——两条一起使用,起到初始化的作用,防止之前的结果对新脚本文件产生干扰。
-
输出函数:disp()函数,不论加不加分号其结果都输出
-
按上下键调出之前使用过的代码
-
MATLAB中字符串的合并:strcat(“字符串1”,“字符串2”);[“字符串1” “字符串2”]
-
将数字转化为字符串:num2str()函数
-
输入函数:input(“提示符”)
-
Matlab中的矩阵:同行之间用空格或者逗号,不同行之间用分号
-
求和:sum()函数
(1)如果是向量,都是直接求和
(2)如果是矩阵,则需要根据行和列的方向进行区分
sum(x): %按列求和(得到一个行向量)
sum(x,1): %按列求和(得到一个行向量)
sum(x,2): %按行求和(得到一个列向量)
sum(sum(x)):整个矩阵求和
sum(x(:):整个矩阵求和 -
求乘积:prod()函数
使用方法同sum() -
对矩阵进行索引
(1)得到第一列的所有元素:x(:,1);
(2)得到第2行的所有元素:x(2,:);
(3)得到第三行第二列的元素: x(3:2);
(4)得到第2行和第5行的全部元素:x([2,5],: );
(5)得到第2行至第5行的全部元素:x([2:5],: );
(6)得到第2行和第4行的全部元素:x([2:2:5],: );
(7)得到第2行至最后一行:x(2:end,:);
(8)得到第2行至倒数第二行:x(2:end-1,:);
(9)取全部的元素拼接为一个列向量:x( : ) ; 在MATLAB中矩阵是按列进行存储的 -
获取矩阵的大小:size()
[r,c] = size(A);%r表示行,c表示列
r = size(A,1)
c = size(A,2) -
对矩阵进行重复 : repmat()函数
B = repmat(A,m,n):将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。 -
矩阵的运算
(1)MATLAB在矩阵的运算中,“”号和“/”号代表矩阵之间的乘法与除法(A/B = Ainv(B));inv(B)表示B矩阵的逆。
(2)两个形状相同的矩阵对应元素之间的乘除法需要使用“.*”和“./”
(3)每个元素同时和常数相乘或相除操作都可以使用
(4)每个元素同时乘方时只能使用 “.^” -
计算矩阵的特征值和特征向量(只有方阵才可以计算):eig()
(1)E = eig(A) : 求矩阵A的全部特征值,构成向量E
(2)[V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。(V的每一列都是D中与之相同列的特征值的特征向量) -
find函数,它可以用来返回向量或者矩阵中不为0的元素的位置索引。
(1)ind = find(X,2) :返回前2个不为0的元素的位置:
(2)[r,c] = find(X) : 按照行列的信息输出
(3)[r,c] = find(X,1) :找第一个非0元素 -
求最大值:max()
求一个矩阵中的最大值:max(x( : )) 或者max(max(x)) -
矩阵与常数的大小判断运算
共有三种运算符:大于> ;小于< ;等于 == (一个等号表示赋值;两个等号表示判断)
X = [1 -3 0;0 0 8;4 0 6]
X > 0 :返回一个01矩阵,其中0表示false,1表示ture
X == 4 :同上 -
判断语句if
Matlab的判断语句,if所在的行不需要冒号,语句的最后一定要以end结尾 ;中间的语句要注意缩进。
a = input('请输入考试分数:')
if a >= 85
disp('成绩优秀')
elseif a >= 60
disp('成绩合格')
else
disp('成绩挂科')
end
- plot()函数
plot(x1,y1,x2,y2)
%线方式:-实线:点线-.虚点线–波折线
%点方式: .圆线 +加号 *星号 x x型 o 小圆
%颜色: y黄色 r红色 g绿 b蓝 w白 k黑 m紫 c q青
%给每一张图片进行标号:figure(1) - subplot函数
目的:分割figure,创建子坐标系
subplot(m,n,p)或者subplot(m n p)。
其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。
subplot(2,2,1); % 2、2、1之间没有空格也可以
%在第一块绘图
subplot(2,2,2);
%在第二块绘图
subplot(2,2,3);
%在第三块绘图
subplot(2,2,4);
%在第四块绘图
- 插值算法相关的函数
(1)分段三次埃尔米特插值:pchip()
p = pchip(x,y,new_x)
x是已知的样本点的横坐标
y是已知的样本点的纵坐标
new_x是要插入处对应的横坐标
(2)三次样条插值
p = spline(x,y,new_x)
x是已知的样本点的横坐标
y是已知的样本点的纵坐标
new_x是要插入处对应的横坐标
(3)n维数据的插值
p = interpn(x1,x2,x3,……,xn,y,new_x1,new_x2,……,new_xn,method)
%x1,x2,……,xn是已知的样本点的横坐标
%y是已知的样本点的纵坐标
%new_x1,new_x2,……,new_xn是要插入处对应的横坐标
%method是插值的方法
‘linear’:线性插值(默认算法)
‘cubic’:三次插值;
‘spline’:三次样条插值法(最为精准)
‘nearest’:最邻近插值算法
p = spline(x,y,new_x)
等价于
p = interpn(x,y,new_x,‘spline’)
- legend()函数
legend(string1,string2,string3,……,‘Location’,‘SouthEast’)
%分别表示将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。
%Location 用来指定标注显示的位置
写这章主要督促自己好好学MATLAB,记录自己的学习情况,之后遇到更多会持续添加,如果有什么书写不正确的地方,欢迎大家批评指正!
*本文内容参考来自清风老师的数学建模课程。