matlab基础知识
1、新建脚本,是指新建一个以.m结尾的文件
2、语句后加分号表示不显示运行结果
3、多行注释 Ctrl+R
取消注释 Ctrl+T
4、clear 清除工作区所有变量
clc 清空命令行窗口
clear:clc 初始化
5、disp 输出函数 用法:disp("输出内容");
input 输入函数 用法:A=input("请输入A:"); % 可输入数字、向量、字符串
6、strcat(str1,str2,...,strn) % 合并字符串
或者用[str1,str2,...,strn] [str1 str2 ... strn]
7、num2str 将数字转化为字符串
c=100;disp(['c的取值为',num2str(c)]);
8、向量与矩阵
1)向量
a=[1,2,3]; a=[1 2 3] % 均为行向量
a=[1;2;3] % 列向量,分号用来分割每一行的元素
2)矩阵
A=[1,1,4,1/3,3;
1,1,4,1/3,3;
1/4,1/4,1,1/3,1/2;
3,3,3,1,3;
1/3,1.3,2,1/3,1] % 5*5的矩阵
A(2,1) % 取第二行第一列的元素
A(:,1) % 取第一列的元素
A([2,5],:) % 取第2行和第5行元素
A([2:5],:) % 取第2行到第5行
A([2:2:5],:) % 取第2行和第四行(从2开始,每次递增两个单位,到5为止)
A(2:end,:) % 取第2行到最后一行
A(:) % 取全部元素,按列拼接
9、sum函数
E=[1,2;3,4;5,6] % 3行两列矩阵
sum(E) % 按列求和,等价于sum(E,1)
sum(E,2) % 按行求和
sum(sum(E)) % 对整个矩阵求和,等价于sum(E(:))
10、size(A); % 用来返回矩阵A的大小,返回一个行向量,[行数,列数]
size(A,1); % 返回A的行数 size(A,2) % 返回A的列数
11、repmat函数
B=repmat(A,m,n); % 将矩阵A复制m*n块,即把A作为B的元素,B由m*n个A平铺而成
12、矩阵的运算
矩阵的加减乘除:A+B A-B A*B A/B 其中A/B等价于A*inv(B)
A.*B % 两个形状相同的矩阵对应元素相乘
A./B % 两个形状相同的矩阵对应元素相除
A*2 % 等价于A.*2,每个元素均乘以2
A/2 % 等价于A./2,每个元素均除以2
A.^2 % 每个元素同时乘方
A^2 % 等价于A*A
13、求矩阵A的特征值和特征向量
A=[1,2,3;2,2,1;2,0,3] % 3*3的方阵
E=eig(A) % 求矩阵A的全部特征值,构成列向量E
[V,D]=eig(A) % A的全部特征向量构成对角阵D,并求A的特征向量构成V的列向量
14、find函数,用来返回向量或矩阵中不为0元素的位置索引
1)当A为向量时
find(A)
find(A,2) % 返回前两个不为0的元素的位置
2)当A为矩阵时
A=[1,-3,0;0,0,8;4,0,6];
ind=find(A); % 先将矩阵A按列拼接,再寻找不为0元素的位置索引
[r,c]=find(A) % 把不为0的元素的位置按行(r)列(c)输出,r和c均为列向量
[r,c]=find(A,1) % 只找第一个不为0的元素,此时r和c为常数
15、X=[1,-3,0;0,0,8;4,0,6]
X>0 % 返回3*3的逻辑矩阵,1代表当前元素大于0成立,0代表不成立
16、判断语句
a=input('请输入考试成绩');
if a>=85
disp('成绩优秀')
elseif a>=60
disp('成绩及格')
else
disp('成绩挂科')
end
17、magic(n); % 幻方矩阵,返回由1到n^2的整数构成的n*n矩阵,其中每一列的元素和均相等
18、sort函数
1)若A为矩阵
sort(A) % 等价于sort(A,1),对每列的元素进行升序排列
sort(A,2) % 对每行的元素进行升序排列
2)若A为行向量或列向量
sort(A) % 默认对A进行升序排列
sort(A,'descend') % 对A进行降序排列
[sorted_A,index]=sort(A)
% sorted_A是排序好的向量,index是排序后元素在原始A中的位置索引
19、zeros函数和ones函数
zeros(n) % 返回一个n*n的全为0的矩阵
zeros(m,n) % 返回一个m*n的全为0的矩阵
ones(n) % 返回一个n*n的全为1的矩阵
ones(m,n) % 返回一个m*n的全为1的矩阵
20、自定义函数需要单独放在一个m文件中,与原函数文件在同一文件夹下
function [输出变量] = 函数名称(输入变量)
% 函数的中间部分都是函数体,函数的最后要用end结尾,输出变量和输入变量可以有多个,用逗号隔开
例如:
function [a,b,c]=test(d,e,f)
a=d+e;
b=e+f;
c=f+d;
end
21、max函数
1)若A是一个矩阵
max(A) % 返回A矩阵每一列的最大值,并组成一个行向量
max(A,2) % 将A矩阵中的每个元素与2比较,保留最大值
max(A,[],2) % 返回A矩阵每一行的最大值,并组成一个列向量
2)若A是一个行向量或列向量
max(A) % 返回每一行或每一列的最大值
22、plot函数的用法
% 线方式: - 实线 :点线 -. 虚点线 -- 波折线
% 点方式: . 圆点 +加号 * 星 号 x x形 o 小圆
% 颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青
实例:plot(x, y, 'o', new_x, p, 'r-')
23、xlabel和ylabel
% 在plot函数以后使用,说明x轴和y轴的名称
24、hold on % 继续在之前的图形上来画图形
grid on % 显示网格线
25、匿名函数
@(arglist)anonymous_function
例如:sqr = @(x) x.^0.5
26、fplot函数,可用于画出匿名一元函数的图形
fplot(f,xinternal) % 其中internal = [xmin,xmax]
27、legend函数
legend(string1,string2,string3, …) % 分别将字符串1、字符串2、字符串3等标注到图中,每个字符串对应的图标为画图时,'Location'用来指定标注显示的位置