字符串
%% 字符串
s='asdsadad';
length(s)
矩阵
%% 矩阵
A=[1,2,3;4,5,2;3,2,7];
%求转置
B=A';
%竖着拉成一列
C=A(:);
%求逆矩阵
D=inv(A);
数据类型
%% 数据类型
%三维10行5列
E=zeros(10,5,3);
%生成均匀分布的伪随机数,分布在0到1之间,double可以指定精度,还可以是single
E(:,:,1)=rand(10,5,'double');
%生成均匀分布的伪随机整数,下面这个是生成开区间(0,5)的10*5矩阵,也可以改成区间的形式
E(:,:,2)=randi(5,10,5);
%生成标准正态分布的伪随机数(均值为0,方差为1)
E(:,:,3)=randn(10,5);
元胞数组
%% 元胞数组
%matlab下标从1开始
A=cell(1,6);
%3*3的对角线数值为1的单位矩阵
A{2}=eye(3);
%magic就是n阶幻方
A{5}=magic(5);
B=A{5};
结构体
%% 结构体
books=struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40]);
books.name;
books.name(1);
books.name{1};
矩阵运算
%% 矩阵运算
A=[1 2 3 5 8 5 4 6]
%1到9,步幅为2
B=1:2:9
%3代表竖着写3遍,2代表横着写2遍
C=repmat(B,3,2)
D=ones(2,4)
A=[1 2 3 4;5 6 7 8]
B=[1 1 2 2;2 2 1 1];
C=A+B
D=A-B
E=A*B'
F=A.*B %对应位置相乘
G=A/B %相当于A乘以B的逆
H=A./B
矩阵下标
%% 矩阵下标
A=magic(5)
B=A(2,3)
C=A(3,:)
D=A(:,4)
[m,~]=find(A>20) %找大于20的标号
简单结构
%% 简单结构1
sum=0;
for i=1:5
p=1;
for j=1:i
p=p*j;
end
sum=sum+p;
end
%% 简单结构2
s=0;
n=1;
while n<=10
s=s+n;
n=n+1;
end
二维平面
%% 二维平面
x=0:0.01:2*pi;
y=sin(x)
plot(x,y)
title=('y=sin(x)')
xlabel('x')
ylabel=("y")
xlim([0 2*pi]) %图像完全铺满,不会多出来
x=0:0.01:20;
y1=200*exp(-0.05*x).*sin(x)
y2=0.9*exp(-0.5*x).*sin(10*x)
[AX,H1,H2]=plotyy(x,y1,x,y2,'plot')
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time (\musec)')
title('Muliple Decay Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')
三维平面
%% 三维
t=0:pi/50:10*pi
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on %带网格
axis square % 变得正一点
双峰函数
%% 双峰函数
[x,y,z]=peaks(30)
mesh(x,y,z)
grid on
图形窗口分割
%% 图形窗口分割
% linspace - 生成线性间距向量,返回包含 x1 和 x2 之间的 100 个等间距点的行向量。
x=linspace(0,2*pi,60)
subplot(2,2,1)%分成两行两列,取第一个
plot(x,sin(x)-1)
% axis设置坐标轴范围和纵横比
title('sin(x)-1');axis([0,2*pi,-2,0])
subplot(2,1,2)
plot(x,cos(x)+1)
title('cos(x)+1');axis([0,2*pi,0,2])
subplot(4,4,3)
plot(x,tan(x))
title('tan(x)');axis([0,2*pi,-40,40])
subplot(4,4,8)
plot(x,cot(x))
title('cot(x)');axis([0,2*pi,-35,35])