%注释。
多行注释,选中注释内容,Ctrl+R.
%结尾有分号表示不显示结果。
2+3;
2+3
clear 清除工作区所有变量
clc 清空命令行窗口
一般脚本开头有
输出函数disp()
clear;clc
%Matlab中不区分单双引号,但区分中英文。
disp('Hello World')
%矩阵
a=[1,2,3];
b=[1 2 3];
%a=b
disp(a)
a=[1;2;3]
%列向量用;分隔。
%合并字符串 strcat
strcat('字符串1','字符串2');
['字符串1' '字符串2']
['字符串1','字符串2']
%数字转换成字符串num2str
输入函数input()
a=input("请输入a:");
求和函数sum
%对行求和
a=[1,2,3]
sum(a)
%对列求和
b=[1;2;3]
sum(b)
%对矩阵求和
E=[1,2;3,4;5,6]
a=sum(E) %得到行向量,按列求和。
a=sum(E,dim) %dim=1 按列求和;dim=2按行求和。
%对整个矩阵求和
a=sum(sum(E))
a=sum(E(:))
%E(:)拼接
提取元素
A(i,j) | 第i行第j列 |
---|---|
A(i,:) | 取第i行所有元素 |
A(:,j) | 取第j列所有元素 |
A([2,5],:) | 只取第二行第五行 |
A(2:5,:) | 取第二行到第五行 |
A(2:end-1,:) 从第二行取到倒数第二行 |
A(:)按列拼接
size函数
尺度大小
[ r , c ] = s i z e ( A ) = i j [r,c] =size(A) =i j [r,c]=size(A)=ij %返回A的行数=ri和列数c=j
r = s i z e ( A , 1 ) r=size(A,1) r=size(A,1) %返回行数
c = s i z e ( A , 2 ) c=size(A,2) c=size(A,2) %返回列数
repmat函数 B = r e p m a t ( A , m , n ) B=repmat(A,m,n) B=repmat(A,m,n)
%将A复制 m × n m\times n m×n块,B由 m × n m\times n m×n平铺组成
矩阵与常数的大小判断运算
X=[1,2,3;4,5,6;7,8,9]
X>3
返回logical数组 对应位置,对-1,错-0;
判断语句 if
a=input("输入:")
if a>=85
disp("result1")
elseif a>=60
disp("result2")
else
disp("result3")
end
生成随机数
s1 = randi([-5,5],2,5) %生成范围在[-5,5]的2行5列随机整数矩阵
s2 = rand(1,5) %生成[0,1]范围内均匀分布的随机数,大小为 1*5
s3 = a+(b-a)*rand(2,5) %生成[a,b]范围内均匀分布的随机数,大小为2*5
s4 = normrnd(av,std,r,c) %生成一个均值为av,标准差为std,行数为r,列数为c的正态分布的随机矩阵。
四舍五入函数roundn
roundn(x,d)
x代表要四舍五入的数值
d代表四舍五入的位置 0个位 1十位 2百位 …-1小数点后一位
一些符号
符号 | 含义 |
---|---|
* | 乘法 |
inv | 求逆 |
/ | 除法(A/B=A*inv(B)) |
+ | 加法(size(A)=size(B)) |
- | 减法(size(A)=size(B)) |
.* | 内积;点乘 |
./ | 点除 |
inf | 无穷 |
^ | A^2 = A*A |
.^ | 每个元素都平方 |
特征值和特征向量
e i g ( A ) eig(A) eig(A)
(1)E=eig(A),A的全部特征值构成向量E( R × 1 R \times 1 R×1)
(2)[P,D] = eig(A) ,P的列向量为特征向量,D=diag( λ \lambda λ)
find函数 返回向量或矩阵中不为0的元素的位置索引
可以参见这个博客 ,写得很详细
%返回所有不为0的位置索引
ind=find(X)
%只返回前n个不为0的元素位置
ind=find(X,n)
幻方矩阵
A=magic(5)
sort函数
(1)sort(A,dim) dim=1,按列升序;dim=2,按行升序
(2)sort(A) 升序 sort(A,‘descend’)降序
(3)
[SA,index] = sort(A,'descend')
%SA为对A降序后的结果
%index表示SA每个结果的索引
新建m文件,与主函数在同一个文件夹。基本格式如下。
function [a,b,c]=test[d,e,f]
a=d/e;
b=d+f;
c=e*f;
end
plot(x1,y1,‘o’,x2,y2,’-’)
符号 | 线方式 |
---|---|
- | 实线 |
: | 虚线 |
-. | 虚点线 |
– | 波折线 |
符号 | 点方式 |
---|---|
. | 圆点 |
+ | 加号 |
* | 星号 |
x | x型 |
o | 小圆 |
符号 | 颜色 |
---|---|
y | 黄色 |
r | 红色 |
g | 绿色 |
b | 蓝色 |
w | 白色 |
k | 黑色 |
m | 紫色 |
c | 青色 |
例如:
x=-2*pi:0.1:3*pi;
y=sin(x)+cos(2*x);
z=sin(x)-cos(3*x);
plot(x,y,'c*-',x,z,'mo--')
hold on %继续在之前的图形上画图
grid on %添加网格线
f=@(x,y) x^2+y^2;
fplot(f,[a,b]) %a,b为作图范围,自行修改
lagend('样本数据','location','SouthEast') %生成图例