%1. matlab数据类型转换,例:uint8函数将数值数据转换成无符号8位整数,int8将数值数据转换为带符号8位整数
x=int8(129);     %因为带符号8位整型数的最大值为127,129超过范围
y=uint8(129);    %因为无符号8位整型数的最大值为255
%2.浮点:单精度(single),双精度(double,默认)
a=class(4);
b=class(single(4));
%3.复型:包括实部和虚部,实部和虚部默认为双精度型,虚数单位用i或j来表示
%real函数:求复数的实部;imag函数:求复数的虚部
c=6+5i;
d=6+5j;
real(d);
%format命令可以用来设置数值命令的输出格式
%format命令的格式:format 格式符
%
format long;
50/3;
format;  %回到默认输出格式short
50/3;
%常用数学函数
%函数调用格式:函数名(自变量的值)
%函数的自变量规定为矩阵变量,也可以是标量
%函数在运算时是将函数逐项作用于矩阵的每个元素上,所以运算的结果就是一个与自变量同型的矩阵
A=[4,1;3,6];
B=exp(A);    %exp(x)函数为求e的x次方
%三角函数有以弧度为单位的函数和以角度为单位的函数
%以角度为单位的函数就在函数名后加d,以示区别
sin(pi/2);
sind(90);
cos(pi);
cosd(180);
%abs函数可以求实数的绝对值,复数的模,字符串的ASCII码值
abs(-4);
abs(3+4i);
abs('a');
%用于取整的函数:fix,floor,ceil,round
%round函数按照四舍五入的规则取整;ceil向上取整;floor向下取整;fix舍去小数取整
round(4.7);
fix(-3.2);
floor(3.6);
ceil(-3.8);%分别求一个三位正整数的个位数字,十位数字和百位数字
m=345;
m1=rem(m,10);   % m%10
m2=rem(fix(m/10),10);
m3=fix(m/100);
%求[1,100]区间的所有素数
%isprime(n)函数:当n是素数是返回1,否则返回0
xx=1:100;
k=isprime(xx);   %生成k向量,向量中的元素为1或0
k1=find(k);  %k1向量为k向量中非0元素的序号
p=xx(k1);%计算表达式(5+cos47)/(1+|d-f|)的值,并将结果赋值给zz,其中d,f为如下值
d=sqrt(7)-2i;
f=exp(pi/2);
g=(5+cosd(47))/(1+abs(d-f));
%预定义变量:pi代表圆周率,NaN代表非数(绘图时要裁掉一部分,则将要裁掉的部分设为NaN)
%who ,whos可以查当前已有变量
%内存变量文件:用于保存matlab工作区变量的文件,其拓展名为.mat
%save命令:创建内存文件;load命令:装入内存变量文件
save mydata a x;    %将a,x装入mydata.mat文件中
load mydata;%matlab矩阵的表示和使用
B=[1,2,3;4,5,6;7,8,9];
C=[-1,-2,-3;-4,-5,-6;-7,-8,-9];
D=[B,C;C,B];E=[1,2,3;4,5,6];
F=[6,7,8;9,10,11];
G=E+F*i;%冒号表达式 格式:e1:e2:e3   e1为初始值,e2为步长,e3为终止值   若省略e2,则表示步长为1
t=0:1:5;
%linspace函数可产生行向量,调用格式:linspace(a,b,n)  a是第一个元素,b是最后一个元素,当n省略时,自动产生100个元素
aa=linspace(0,pi,6);%结构矩阵和单元矩阵
%结构矩阵成员赋值格式:结构矩阵元素.成员们=表达式
u(1).x1=10;u(1).x2='liu';u(1).x3=[11,21;34,78];
u(2).x1=12;u(2).x2='wang';u(2).x3=[34,19;10,27];
u(3).x1=14;u(3).x2='cai';u(3).x3=[13,17;90,19];
u(2);
%建立单元矩阵和一般矩阵相似,只是单元矩阵元素用大括号括起来
uu={10,'liu',[11,21;34,10],12,'wang',[34,19]};%矩阵元素的引用方式:
%1.通过下标来引用A(3,2)表示A矩阵第三行第二列的元素
AA=[1,2,3;4,5,6];
AA(4,5)=10;
%2.通过序号来引用(矩阵存储顺序为按列存储)  m*n的矩阵A,矩阵元素A(i.j)的序号为(j-1)*m+i
BB=[1,2,3;4,5,6];
BB(2);
BB(3);%矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现相互转换
CC=[1:3;4:6];
% 格式: sub2ind(S,I,J)
%行下标为1,列下标为1的元素在矩阵中的序号为1;行下标为2,列下标为1的元素在矩阵中的序号为2;
%行下标为2,列下标为3的元素在矩阵中的序号为6;        2         2                     4
DD=sub2ind(size(CC),[1,2;2,2],[1,1;3,2]);
%格式:[I,J]=ind2sub(S,D)
%要求一个3行3列的矩阵的第1个,第3个,第5个元素的下标
[I,J]=ind2sub([3,3],[1,3,5]);%利用冒号表达式获得子矩阵
%A(i,:)     第i行的全部元素
%A(:,j)     第j列的全部元素
%A(i:i+m,k:k+m)
DD=[1:5;6:10;11:15];
DD(1:2,:);
DD(2:3,1:2:5);
%end运算符:表示某一维的末尾元素下标
EE=[1:5;6:10;11:15;16:20];
EE(end,:);
%引用第一行和第四行的从第三列到最后一列的元素
EE([1,4],3:end);
%利用空矩阵删除矩阵元素,X=[]
FF=[1,2,3,0,0;7,0,9,2,6;1,4,-1,1,8];
%删除第二列和第四列元素
FF(:,[2,4])=[];
%改变矩阵的形状
%reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵,不改变存储顺序即序号
GG=[1,2,3,4;5,6,7,8];
reshape(GG,4,2);
%A(:):将矩阵A的每一列元素堆叠起来,成为一个列向量
GG(:);%算术运算
%基本算数运算:+(加),-(减),*(乘),/(右除),\(左除),^(乘方),是在矩阵意义下进行的,单个数是矩阵的特例
%加减运算需两矩阵同型,乘法运算A乘B要求矩阵A的列数等于矩阵B的行数
%乘方运算A^x,要求A为方阵,x为标量
%点运算:.* ; ./ ; .\ ; .^
%两个矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型
%关系运算符:<,<=,>,>=,==,~=(不等于)  关系成立为1,不成立为0
%当参与比较的量是两个同型矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终得到一个由0和1组成的同型矩阵
%当参与比较的一个是标量,一个时矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较%建立一个三阶方阵,判断方阵的元素是否为偶数
HH=[24,35,13;22,63,23;39,47,80];
II=rem(HH,2)==0;%逻辑运算符:&(与),|(或),~(非)
%优先级:在算术运算,关系运算和逻辑运算中,算数运算优先级最高,逻辑运算最低,但逻辑非运算是单目运算,他的优先级比双目运算要高
~9==1;%水仙花数是指各位数字的立方之和等于改数本身的三位正整数,求所有水仙花数
mk=100:999;
mk1=rem(mk,10);
mk2=rem(fix(mk/10),10);
mk3=fix(mk/100);
%find找序号
mmk=find(mk==mk1.*mk1.*mk1+mk2.*mk2.*mk2+mk3.*mk3.*mk3);
mkk=mk(mmk);%字符串处理,字符串是用单引号括起来的字符序列
str='Central South University';
str(1:3);
%若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示
sss='I''m a teacher.';
%建立多行字符串,形成字符矩阵
ch=['abcdef';'123456'];
ch(2,3);%建立一个字符串向量,然后对该向量做如下处理:
%1.取第1-5个字符组成的子字符串
%2.将字符串倒过来重新排列
%3.将字符串中的小写字母变成相应的大写字母,其余字符不变
%4.统计字符串中小写字母的个数
ch='ABc123d4e56Fg9';
subch=ch(1:5);
revch=ch(end:-1:1);
k=find(ch>='a'&ch<='z');
ch(k)=ch(k)-('a'-'A');
length(k);
%字符串的执行:格式:eval(s)
tp=pi;
tm='[tp,sin(tp),cos(tp)]';
ty=eval(tm);%字符串与数值之间的转换
%abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵
%char函数可以把ASCII码矩阵转换为字符串矩阵
s1='MATLAB';
a=abs(s1);
char(a+32);
%字符串的比较:利用关系运算符或字符串比较函数
%比较规则:两个字符串里的每个字符依次按ASCII值大小逐个比较,比较的结果是一个数值向量,向量中的元素为1或0
'www0'>='W123';
%字符串比较函数用于判断字符串是否相等,有四种比较方式:1.strcmp(s1,s2)  2.strncmp(s1,s2,n) 比较两个字符串前n个是否相等
%3.strcmpi(s1,s2) 在忽略字母大小写前提下,比较字符串s1和s2是否相等
%4.strncmpi(sq,s2,n) 在忽略字符串大小写前提下,比较字符串前n个字符是否相等
strcmp('www0','w123');
strncmpi('Www0','ww123',2);
%字符串的查找与替换
%1.findstr(s1,s2):返回短字符串在长字符串中的开始位置
%2.strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符串s3
pp=findstr('This is a test!','is');
pp=findstr('uti','beautiful');
result=strrep('This is a test','test','class');%lower(c)将大写字母转换为小写字母  upper(c)将小写字母转换为大写字母
%matlab矩阵处理%通用的特殊矩阵——1.zeros函数:产生全0矩阵  2.ones函数:产生全1矩阵
%3.eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵
%4.rand函数:产生(0,1)区间均匀分布的随机矩阵
%5.randn函数:产生均值为0,方差为1的标准正态分布随机矩阵
%zeros函数调用格式:1.zeros(m);产生m*m零矩阵 2.zeros(m,n):产生m*n零矩阵
%3.zeros(size(A)):产生与矩阵A同样大小的零矩阵
AT=zeros(2,3);
zeros(size(reshape(AT,3,2)));
%例1:首先产生5阶两位随机整数矩阵AR,再产生均值为0.6,方差为0,1的5阶正态分布随机矩阵BR,最后验证(AR+BR)*I=I*AR+BR*I(I为单位矩阵)
AR=fix(10+(99-10+1)*rand(5));
BR=0.6+sqrt(0.1)*randn(5);
I=eye(5);
(AR+BR)*I==I*AR+BR*I;%魔方矩阵:n阶魔方矩阵由1,2,3,...,n^2共n^2个整数组成,且每行,每列以及主,副对角线上各n个元素之和都相等
%n阶魔方阵每行每列元素的和为(1+2+3+...+n^2)/n=(n+n^3)/2
%MATLAB函数magic(n)产生一个特定的魔方阵
%例:产生8阶魔方阵,求其每行每列元素的和
MM=magic(8);
sum(MM(1,:));
%范德蒙矩阵 vander(V)
AAA=vander(1:5);
%希尔伯特矩阵 hilb(n)
%format rat      %以有理数形式输出
HH=hilb(4);%对角矩阵:只有对角线上有非零元素的矩阵        数量矩阵:对角线上的元素相等的对角矩阵
%单位矩阵:对角线上的元素都为1的对角矩阵%提取矩阵的对角线元素
%diag(A):提取矩阵A主对角线元素,产生一个列向量
%diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量
%构造对角矩阵
%diag(V):以向量V为主对角线元素,产生对角矩阵
%diag(V,k):以向量V为第k条对角线元素,产生对角矩阵
%例:先建立5*5矩阵AFF,然后将AFF的第一行元素乘以1,第二行乘以2,...,第五行乘以5
AFF=[1:5;6:10;11:15;16:20;21:25];
ADD=diag(1:5);
ADD*AFF;%上三角阵:矩阵的对角线以下的元素全为0的矩阵     下三角阵:对角线以上的元素全为0的矩阵
%triu(A):提取矩阵A的主对角线及以上的元素         triu(A,k):提取矩阵A的第k条对角线及以上的元素
triu(ones(4),-1);
triu(ones(4),1);
%提取矩阵A的下三角矩阵的函数时tril,其用法与triu函数完全相同%矩阵的转置  转置运算符是小数点后面接单引号(.')
%共轭转置,其运算符是单引号('),它在转置的基础上还要取每个数的复共轭
A=[1:5;6:10;11:15;16:20];
A.';
A;
%矩阵的旋转:rot90(A,k):将矩阵A逆时针方向旋转90的k倍,当k为1时可省略
B=[1,3,2;-3,2,1;4,1,2];
rot90(B);
rot90(B,2);
%矩阵的翻转  fliplr(A):对矩阵A实施左右翻转    flipud(A):对矩阵A实施上下翻转
%矩阵的求逆:对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=I(I为单位矩阵),则称B为A的逆矩阵,当百,A也是B的逆矩阵
%inv(A):求方阵A的逆矩阵%例:用求逆矩阵的方法解线性方程组  (1)x+2y+3z=5  (2)x+4y+9z=-2  (3)x+8y+27z=6
% Ax=b => A.'Ax=A.'b =>x=A.'b
A=[1,2,3;1,4,9;1,8,27];
b=[5;-2;6];
x=inv(A)*b;
y=(A^-1)*b;%方阵的行列式:把方阵看作行列式,并对其按行列式的规则求值,这个值就称为方阵所对应的行列式的值
%det(A):求方阵A所对应的行列式的值
%验证 det(P^-1)=1/det(P)
%format rat      %以有理数形式输出
P=[1,3,2;-3,2,1;4,1,2];
det(P^-1);
det(inv(P));
1/det(P);%rank(A):求矩阵A的秩
for n=3:20r(n)=rank(magic(n));    %r(1)=r(2)=0
end
bar(r);  %用r绘制出直方图
grid on;        %加上网格
axis([2,21,0,20]);   %axis函数定义图中横坐标和纵坐标的定义域的%矩阵的迹:矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和
%trace(A):求矩阵A的迹
P=[1,3,2;-3,2,1;4,1,2];
trace(P);
sum(diag(P));
%向量和矩阵的范数:用来度量矩阵或向量在某种意义下的长度
%向量的三种范数
%向量一范数:向量元素的绝对值之和 ; 向量二范数:向量元素平方和的平方根 ; 向量无穷大范数:所有向量元素绝对值中的最大值
% norm(V)或norm(V,2):计算向量V的二范式   norm(V,1):计算向量V的一范数  norm(V,inf):计算向量V的无穷大范数%矩阵的条件数%矩阵的特征值与特征向量
%E=eig(A):求矩阵A的全部特征值,构成向量E
%[X,D]=eig(A):求矩阵A的全部特征值,构成对角矩阵D,并产生矩阵X,X各列是相应的特征向量
format rat
A=[1,1,0;1,0,5;1,10,2];
E=eig(A);
[X,D]=eig(A);
AX=A*X(:,1);
DX=D(1)*X(:,1);
AX==DX;    % ???
[564/974;1265/293;1765/252]==[564/974;1265/293;1765/252];R=[-1,2,0;2,-4,1;1,1,-6];
S=[1,2;2,3];
A=[R,zeros(3,2);zeros(2,3),S];
[X1,d1]=eig(R);
[X2,d2]=eig(S);
[X3,d3]=eig(A);%稀疏矩阵:0元素的个数远远多于非0元素的个数的矩阵
%矩阵的存储方式:完全存储方式(按列存储)和稀疏存储方式(只存储矩阵的非零元素的值及其位置,即行号的列号)
%A=sparse(S):将矩阵S转化为稀疏存储方式的矩阵A
%S=full(A):将矩阵A转化为完全存储方式的矩阵S
A=sparse(eye(5));
B=full(A);
%whos A B
%直接建立稀疏存储矩阵  sparse函数的其他调用格式:
%sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵
%sparse(u,v,S):其中u,v,S是三个等长的向量,S是要建立的稀疏存储矩阵的非零元素,u(i),v(i)分别是S(i)的行和列下标
A=sparse([1,2,2],[2,1,4],[4,5,-7]);
B=full(A);
%使用spconvert函数直接建立稀疏存储矩阵,其调用格式为:B=spconvert(A)
%A为一个m*3或m*4的矩阵,其每行表示一个非零元素,m是非零元素的个数
%例
A=[2,2,1;2,1,-1;2,4,3];
B=spconvert(A);%带状稀疏矩阵是指所有非零元素集中在对角线上的矩阵%单位矩阵的系数存储:speye(m,n)返回一个m*n的稀疏存储单位矩阵
speye(3);
%数据的输入 A=input(提示信息,选项);
%A=input('请输入变量A的值:');
%数据的输出 disp(输出项);
s='Hello,world';
%disp(s)
%程序的暂停 pause(延迟秒数) 若要强行终止程序的运行可使用Ctrl+C命令
%求线段AB的长  ?注:以复数形式输入
%A=input('A=');  %x1+y1i
%B=input('B=');  %x2+y2i
%s=abs(A-B);%单分支if语句  if 条件\n\t语句组\nend
%if语句中的条件:如果条件为标量,非零成立;如果条件为矩阵,矩阵为非空且不含零元素成立;
%双分支if语句:if条件\n\t语句组1\nelse\n\t语句组2\nend
%例:输入一个整数,若为奇数则输出其平方根,否则输出其立方根%x=input('请您输入一个整数:');
% if rem(x,2)==1
%     y=sqrt(x);
% else
%     y=power(x,1/3);  % x^(1/3) <=> power(x,1/3)
% end%多分枝if语句(程序只执行一个分支)   语句格式: if 条件1\n\t语句组2\nelseif 条件2\n\t语句组2...else\n\t语句组n\nend%lower(c)将大写字母转换为小写字母  upper(c)将小写字母转换为大写字母%switch语句的格式  switch 表达式\n\tcase 结果表1\n\t语句组1\ncase 结果表2\n\t语句组2...otherwise 语句组n\nend
%整个过程只执行一个语句组
%switch表达式应该是一个其值可以列举的表达式;当取值有多个时,用单元数据表示(大括号括起来);
% y=input('y=?');
% switch fix(y)
%     case 2
%         disp(111);
%     case 2
%         disp(222);
%     case {3,4,5}
%         disp(333);
%     otherwise
%         disp(444);
% end%循环结构
%for循环格式:for 循环变量=表达式1:表达式2:表达式3\n\t循环体语句\nend (表达式1为初值,表达式2为步长,表达式3为终值)
%当步长为1时,表达式2可以省略
for k=[1,3,2,5]k;
end
%当向量为空时,循环体一次也不执行
for k=1:-2:10k;
end%while语句 格式:while 条件\n\t循环体语句\nend
%例:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和
% a=input('please enter:');
% i=0;
% sum=0;
% while a~=0
%     i=i+1;
%     sum=sum+a;
%     a=input('please enter again:');
% end
% disp(sum/i);%break:终止循环  continue:结束本次循环
% for n=100:200
%     if rem(n,21)==0
%         n
%         break
%     end
% end%用筛选法求某自然数范围内的全部素数
% m=input('m=');
% p=1:m;
% p(1)=0;
% for i=2:sqrt(m)
%     for j=2*i:i:m
%         p(j)=0;
%     end
% end
% n=find(p~=0)
% p(n)%函数:fcircle.m%匿名函数基本格式:函数句柄变量=@(匿名函数输入参数)匿名函数表达式  【利用函数句柄可以间接调用函数】
f=@(x,y)x^2+y^2;
f(3,4);
%还可以给已存在的函数定义函数句柄  格式:函数句柄变量=@函数名  【这些函数包括内部函数还有自定义文件】
%例:取sin的函数句柄,并将它赋值给变量h
% h=@sin;
% h(pi/2)
% c=@fcircle;
% [s,p]=c(3)%函数的递归调用:1.直接递归  2.间接递归(f1函数调用f2,f2调用了f1)
%利用函数的递归调用求n!   fact.m
% n=input('please input n=');
% s=fact(n);
% disp(s);%函数参数的可调性:函数传入的参数个数是可变的
%nargin:记录调用函数时输入实参的个数    nargout:记录调用函数时输出实参的个数
%例子:var.m
fout=var(2);
fout=var(2,3,2);%局部变量是指在程序中只在特定过程或函数中可以访问的变量
%全局变量是在整个matlab工作空间都有效的变量,所有的函数都可以对它进行存取和修改。我们前面所定义的都是局部变量
%全局变量定义格式:global 变量名
%函数L:wad.m
global ALPHA BETA
ALPHA=1;
BETA=2;
s=wad(1,2)
%绘制图形%二维曲线:plot函数,fplot函数
%plot函数基本用法:plot(x,y) 其中,x和y分别用于存储x坐标和y坐标数据,通常,x和y为长度相等的向量
%例:绘制一条折线
x=[2.5,3.5,4,5];
y=[1.5,2.0,1,1.5];
%plot(x,y);%最简单的plot函数调用格式:plot(x)  这种情况下,当x是实向量时,则以该向量元素的下标为横坐标,元素的值为纵坐标绘制一条曲线
%当plot函数的参数x是复数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制出一条曲线
cx=complex(x,y);   %cx=x+y*i <=> cx=complex(x,y);
%plot(x)
%plot(cx)%plot(x,y)函数参数的变化形式
%1.当x是向量,y是矩阵时:如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数
%2.如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数
%例:绘制sinx ,sin(2x),sin(x/2)的函数曲线
x=linspace(0,2*pi,100); %x为有100个元素的行向量
%用法:linspace(x1,x2,N)  
%功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、中止值、元素个数。
%若缺省N,默认点数为100。在matlab的命令窗口下输入help linspace或者doc linspace可以获得该函数的帮助信息。
%x=0:(2*pi/100):2*pi;
y=[sin(x);sin(2*x);sin(0.5*x)];
%plot(x,y)
%3.当x,y是同型矩阵时,以x,y对应列元素为横,纵坐标分别绘制曲线,曲线条数等于矩阵的列数
% t=0:0.01:2*pi;
% t1=t';
% x=[t1,t1,t1];
% y=[sin(t1),sin(2*t1),sin(0.5*t1)];
%plot(x,y);
%(4)含多个输入参数的plot函数:plot(x1,y1,x2,y2,...,xn,yn) 其中,每一向量对构成一组数据点的横,纵坐标,绘制一条曲线
t1=linspace(0,2*pi,10);
t2=linspace(0,2*pi,20);
t3=linspace(0,2*pi,100);
%plot(t1,sin(t1),t2,sin(t2)+1,t3,sin(t3)+2);
%(5)含选项的plot函数:plot(x,y,选项) 选项用于指定曲线的线性,颜色和数据点标记
%线性:‘-’表实线;‘:’表虚线;'-.'表点画线;‘--’表双画线;默认实线
%颜色:‘r'红色;'g'绿色;'b'蓝色;'w'白色;'k'黑色
%数据点标记:'*'表星号;'o'表圆圈;'s'表方块;'p'表五角星;'^'表朝上三角符号;默认无数据点标记符号
x=(0:pi/50:2*pi)';
y1=2*exp(-0.5*x)*[-1,1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=0:0.5:6;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
%plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');%fplot函数
%1.fplot函数基本用法 fplot(f,lims,选项) 根据参数函数特性自适应的设置间隔,当函数值变化缓慢时,设置的采样间隔大,反之则小
%fplot(f,lims,选项)
%f代表一个函数,通常采用函数句柄的形式;lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5];选项定义与plot函数相同
%例:采用fplot函数绘制函数sin(1/x)的图形
%fplot(@(x)sin(1./x),[0,0.2],'b');
%2.双输入函数参数的用法:fplot(funx,funy,tlims,选项)
%其中,funx,funy代表函数,通常采用函数句柄的形式。tlims为参数函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax]描述
%例:根据参数方程绘制参数方程,绘制螺旋曲线 x=t*sint y=t*cost
%fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,10*pi],'r')
%fplot(@(t)2*(2*cos(t)-cos(2*t)),@(t)2*(2*sin(t)-sin(2*t)),[0,2*pi],'r')%绘制图形的辅助操作
%图形标注:title(图形标题),xlabel(x轴说明),ylabel(y轴说明),text(x,y,图形说明),legend(图例1,图例2,...)
%title函数基本用法:1.title(图形标题)
%例:绘制[-2pi,2pi]区间的正弦曲线并给图形添加标题
x=-2*pi:0.05:2*pi;
y=sin(x);
%plot(x,y);
%title('y=sin(x)');
%title({'matlab','y=sin(x)'})    %标题有两行
%title函数:2.在标题中使用LaTeX格式控制符 LaTeX部分要用大括号括起来  _:下标   ^:上标
%title('y=cos{\omega}t+{\beta}')
%title('y=e^{axt}')
%title('x_{1}{\geq}x_{2}')%title函数:含属性设置的title函数 title(图形标题,属性名,属性值)
%Color属性:用于设置图形标题文本的颜色 其取值与plot函数相等 默认黑色
%FontSize属性:用于设置标题文字的字号 默认字号11
%title('y=cos{\omega}t+{\beta}','Color','r','FontSize',24);%xlabel函数和ylabel函数调用方法:xlabel(x轴说明)    ylabel(y轴说明)   与title函数一样
%xlabel('-2\pi \leq x \leq 2\pi');%text函数和gtext函数   text(x,y,说明)  gtext(说明)
%text(-2*pi,0,'-2{\pi}')
%text(3,sin(3),'\leftarrow sin(x)','Color','r')%gtext函数没有坐标参数,执行命令时光标跟随鼠标移动,单击鼠标即可放置文本
%gtext('sinx')%legend函数:legend(图例1,图例2,...)  图例定义方法与title函数一样
% x=linspace(0,2*pi);
% plot(x,[sin(x);sin(2*x);sin(3*x)]);
% legend('sin(x)','sin(2x)','sin(3x)')%坐标控制:axis函数  axis([xmin,xmax,ymin,ymax,zmin,zmax])
%六个参数分别为三个坐标轴的最小值和最大值,绘制二维图形时只给出前四个值
%axis的其他用法:axis equal:纵,横坐标采用等长刻度  axis square:产生正方形坐标系(默认矩形)
%axis auto:使用坐标轴的默认设置   axis off:不显示坐标轴   axis on:显示坐标轴
% x=[0,1,1,0,0];
% y=[0,0,1,1,0];
% plot(x,y);
% axis([-0.1,1.1,-0.1,1.1]);%给坐标系加网格:grid on控制显示网格线   grid off控制不显示网格线   grid在两种状态进行切换   默认不显示
%给坐标系加边框:box on    box off    box      默认有边框
% grid on;
% box off;% 例:绘制sinx,sin(2x),sin(x/2)的函数曲线并添加图形标注
% x=linspace(0,2*pi,100);
% y=[sin(x);sin(2*x);sin(x/2)];
% plot(x,y);
% axis([0,7,-1.2,1.2]);
% title('不同频率正弦函数曲线');
% xlabel('Variable X');
% ylabel('Variable Y');
% text(2.5,sin(2.5),'sin(x)');
% text(1.5,sin(1.5*2),'sin(2x)');
% text(5.5,sin(0.5*5.5),'sin(x/2)');
% legend('sin(x)','sin(2x)','sin(x/2)');
% grid on%图形保持 hold on控制保持原有图形    hold off控制刷新图形窗口    hold控制在两种状态进行切换
%例:用图形保持功能绘制两个同心圆
% t=linspace(0,2*pi,100);
% x=sin(t);
% y=cos(t);
% plot(x,y,'b');
% hold on;
% plot(2*x,2*y,'r--');
% grid on;
% axis([-2.2,2.2,-2.2,2.2]);
% axis equal%图形窗口的分割
%子图:同一图形窗口中的不同坐标系下的图形称为子图
%subplot函数:subplot(m,n,p) 其中,m和n指定将图形窗口分成m*n个绘图区,p指定当前活动区,区号按行优先编号
% subplot(2,2,1);
% x=linspace(0,2*pi,60);
% y=sin(x);
% plot(x,y);
% title('sin(x)');
% axis([0,2*pi,-1,1]);
% subplot(2,2,4);
% plot(x,cos(x));
% title('cos(x)')
% axis([0,2*pi,-1,1]);% x=linspace(0,2*pi,60);
% subplot(2,2,1);
% plot(x,sin(x)-1);
% 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]);%其他形式的二维曲线:其他坐标系下的二维曲线图,统计图,矢量图形
%对数坐标图 semilogx(x1,y1,选项1,x2,y2,选项2,...) semilogy(x1,y1,选项1,x2,y2,选项2,...) loglog(x1,y1,选项1,x2,y2,选项2,...)
%前两个是半对数,最后一个是全对数
%例:绘制1/x的直角坐标图和三种对数坐标图
% x=0:0.1:10;
% y=1./x;
% subplot(2,2,1);
% plot(x,y);
% title('plot(x,y)');
% grid on
% subplot(2,2,2);
% semilogx(x,y);
% title('semilogx(x,y)');
% grid on
% subplot(2,2,3);
% semilogy(x,y);
% title('semilogy(x,y)');
% grid on
% subplot(2,2,4);
% loglog(x,y);
% title('loglog(x,y)');
% grid on%极坐标图:polar(theta,rho,选项) 其中,theta为极角,rho为极径,选项的内容与plot函数相同
%例:按极坐标方程ρ=1-sint绘制心形曲线
% t=0:pi/100:2*pi;
% r=1-sin(t);
% subplot(1,2,1);
% polar(t,r);
% subplot(1,2,2);
% t1=t-pi/2;  %逆时针旋转90度
% r1=1-sin(t1);
% polar(t,r1);%统计图:条形图,直方图,饼图,散点图
%1.条形图:bar函数绘制二维垂直条形图  barh函数水平条形图 两种函数调用格式相同
%bar(y,style):若输入参数y为向量,则分别以每个元素的值作为每一个矩形条的高度,以对应元素的下标作为横坐标。
%若y为矩阵,则以y的每一行元素组成一组用矩阵的行号作为横坐标分组绘制矩形条
%选项style用于指定分组排列模式  grouped:簇状分组   stacked:堆积分组  默认采用簇状分组
% y=[1,2,3,4,5;1,2,1,2,1;5,4,3,2,1];
% subplot(1,2,1);
% bar(y,'grouped');
% title('Group');
% subplot(1,2,2);
% bar(y,'stacked');
% title('Stack')%bar(x,y,style) 其中,x存储横坐标,y存储数据  x是一个向量,y是矩阵,y的行数要与x的长度相同
%例:画某公司2015-2017年一月份各电类商品的销售数据
% x=[2015,2016,2017]; %存储年份
% y=[68,80,115,98,102;75,88,102,99,110;81,86,125,105,115];
% bar(x,y);
% title('Group');%直方图:hist函数用于绘制直角坐标系下的直方图  rose函数用于绘制极坐标系下的直方图
%hist(y):通常参数y是向量,绘图时将y中的最小值和最大值之间的数值区间等分,并统计落在每个区间的元素的个数,然后以元素个数为高度绘制条形图
%hist(y,x):x用于指定区间的划分方式,若x是标量,则统计区间均分成x个小区间,若x是向量,则向量x中的每一个数指定分组的中心值,元素的个数为数据分组数,x缺省时,默认按10个等分区间进行统计
%绘制服从高斯分布的直方图
% y=randn(500,1); %是一种产生标准正态分布的随机数或矩阵的函数,Y = randn(m,n) 或 Y = randn([m n]),返回一个m*n的随机项矩阵。
% subplot(2,1,1);
% hist(y);
% title('高斯分布直方图');
% subplot(2,1,2);
% x=-3:0.2:3;
% hist(y,x);
% title('指定区间中心点的直方图');%极坐标系下的直方图:rose函数:rose(theta,x)
%其中,参数theta用于确定每一区间与原点的角度,选项x用于指定区间的划分方式
%若x是标量,则在0-2pi区间内均匀划分成x个扇形区域,若x缺省时,则默认按20个等分区间进行统计
%例:绘制高斯分布数据在极坐标下的直方图
% y=randn(500,1);
% theta=y*pi;   %将y转换为弧度制赋给theta
% rose(theta);
% title('在极坐标下的直方图');%面积类统计图形:1.扇形统计图(又称饼图) pie函数 2.面积图 area函数(area函数用法与plot函数相同)
%pie函数:pie(x,explode) 其中,参数x存储待统计数据,选项explode控制图块的显示模式
%通常x为向量,绘图时x的每个元素对应一个扇形,每个扇形的覆盖角度反应对应x元素在整体所占的比重,与参数explode的非零值对应的部分将从饼图中心分离出来,explode是与x同等大小的向量,省略exlpode时,饼图是一个整体
%例:某次考试优秀、良好、中等、及格、不及格的人数分别为:5、17、23、9、4,试用扇形统计图作成绩统计分析,并将不及格人数从饼图中分离出来
% score=[5,17,23,9,4];
% ex=[0,0,0,0,1];
% pie(score,ex);
% %location用于指定图例位置,eastoutside表示图例放在绘图区域右边的外侧,如果不指定图例位置,图例默认放在绘图区域内,会遮挡一部分图形
% legend('优秀','良好','中等','及格','不及格','location','eastoutside');%散点类图形经常用于实验中,比较实验得到的结果与理论值之间的差异
%scatter函数:散点图    stairs函数:阶梯图    stem函数:杆图    三个函数的用法与plot函数相似
%scatter(x,y,选项,'filled')
%参数x、y用于定位数据点,选项用于指定线性、颜色、数据点标记,与plot函数相同,如果数据点标记符号是封闭图形,如圆圈或方块,可以用选项filled指定填充数据点标记,该选项省略时,数据点是空心的
%例:以散点图形式绘制桃心曲线,曲线的参数方程如下:x=16(sint)^3    y=13cost-5cos(2t)-2cos(3t)-cos(4t)
% t=0:pi/50:2*pi;
% x=16*sin(t).^3;
% y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);
% scatter(x,y,'rd','filled');%矢量类图形  compass函数:罗盘图   feather函数:羽毛图    quiver函数:箭头图
%quiver(x,y,u,v):其中,(x,y)指定矢量起点,(u,v)指定矢量终点
%(x,y)和(u,v)是同样大小的向量或同型的矩阵,若省略(x,y),则在(x,y)平面上均匀取若干个点作为起点
%例:已知向量A,B,求A+B,并用矢量图表示
% A=[4,5]; B=[-10,0]; C=A+B;
% hold on;
% quiver(0,0,A(1),A(2));
% quiver(0,0,B(1),B(2));
% quiver(0,0,C(1),C(2));
% text(A(1),A(2),'A');
% text(B(1),B(2),'B');
% text(C(1),C(2),'C');
% axis([-12,6,-1,6])
% grid on%三维曲线的绘制  基本函数:plot3函数
% plot3(x,y,z) 其中,参数x,y,z组成一组曲线的坐标
%例1.绘制一条空间折线,x(1),y(1),z(1)构成折线的第一个坐标,x(2),y(2),z(2)构成折线的第二个坐标,...
% x=[0.2,1.8,2.5];
% y=[1.3,2.8,1.1];
% z=[0.4,1.2,1.6];
% plot3(x,y,z)
% grid on
% axis([0,3,1,3,0,2])%例2.绘制螺旋线
% t=linspace(0,10*pi,200);
% x=sin(t)+t.*cos(t);
% y=cos(t)-t.*sin(t);
% z=t;
% subplot(1,2,1);
% plot3(x,y,z);
% grid on;
% subplot(1,2,2)
% plot3(x(1:4:200),y(1:4:200),z(1:4:200))
% grid on;%plot3函数参数的变化形式  plot3(x,y,z)  x,y,z一般为长度相等的向量,但也可以有些变化
%当参数x,y,z是同型矩阵时,则以x,y,z对应列元素绘制曲线。曲线条数等于矩阵列数。
%当参数x,y,z中有向量,也有矩阵时,向量的长度应于矩阵相符,也就是行向量的长度与矩阵的列数相同,列向量的长度与矩阵的行数相同
%例:在空间不同位置绘制5条正弦曲线
% t=0:0.01:2*pi;
% t=t';             %将t转换为列向量
% x=[t,t,t,t,t];
% y=[sin(t),sin(t)+1,sin(t)+2,sin(t)+3,sin(t)+4];
% z=[t,t,t,t,t];
% plot3(x,y,z);% 以下代码段等同于上面那个代码段
% t=0:0.01:2*pi;
% t=t';             %将t转换为列向量
% x=t;
% y=[sin(t),sin(t)+1,sin(t)+2,sin(t)+3,sin(t)+4];
% z=t;
% plot3(x,y,z);% 含多组输入参数的plot3函数    plot3(x1,y1,z1,x2,y2,z2,...,xn,yn,zn)
% 每一组x,y,z向量构成一组数据点的坐标,绘制一条曲线
%例:绘制三条不同长度的正弦曲线
% t1=0:0.01:1.5*pi;
% t2=0:0.01:2*pi;
% t3=0:0.01:3*pi;
% plot3(t1,sin(t1),t1,t2,sin(t2)+1,t2,t3,sin(t3)+2,t3);
% xlabel('X'),ylabel('Y'),zlabel('Z');    %给三个坐标轴添加标签
% grid on% 含选项的plot3函数  plot3(x,y,z,选项) 选项用于指定曲线的线型、颜色和数据点标记%如果x,y,z用参数方程定义,且参数方程只有一个自变量,则可以使用fplot3函数 fplot3(funx,funy,funz,tlims,选项)
%其中,funx,funy,funz代表定义曲线x,y,z坐标的函数,通常采用函数句柄的形式。tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5]
%例,绘制墨西哥帽顶曲线
% xt=@(t)exp(-t/10).*sin(5*t);
% yt=@(t)exp(-t/10).*cos(5*t);
% zt=@(t)t;
% fplot3(xt,yt,zt,[-15,15],'r-');%三维曲面 5.5.1 未学%图形修饰处理 :视点处理  色彩处理  裁剪处理
%视点处理:方位角,仰角5.6.1未学
%色彩处理:1.用含有三个元素的向量表示颜色,向量元素在0-1之间取值,颜色的向量 [R G B]  红,绿,蓝 三种颜色
%例如[0 0 1]:蓝色   [1 0 0]:红色   [0 1 0]:绿色   [1 1 1]:白色   [0 0 0]:黑色
%2.色图:色图矩阵(m行3列的数组,定义了包含m组颜色的数组)   内建色图
%未学完%图形的裁剪处理
%将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的
%例:绘制3/4圆
t=linspace(0,2*pi,100);
x=sin(t);
y=cos(t);
p=y>0.5;
y(p)=NaN;
plot(x,y)
axis([-1.1,1.1,-1.1,1.1])
axis square
grid on
%数据分析与多项式计算%求矩阵的最大元素和最小元素  max()  min()
%y=max(X):返回向量X的最大值存入y
%[y,k]=max(X):返回向量X的最大值存入y,最大值元素的序号存入k,如果X包含复数元素,则按模取最大值
% x=[-43,72,9,10];
% [k,y]=max(x)%求整个矩阵最大元素max(A(:))% %求矩阵的平均值和中值  mean():求算术平均值   median():求中值
% x=[1200,800,1500,1000,5000];
% mean(x)
% median(x)%求和与求积  sum():求和函数   prod():求积函数
%累加和与累乘积  cumsum():累加和函数   cumprod():累乘积函数
% %求向量X=[1,2,3,4,5,6,7,8,9,10]的积与累乘积
% X=[1,2,3,4,5,6,7,8,9,10]
% y1=prod(X)
% y2=cumprod(X)%标准差与相关系数
% std():计算标准差函数
%调用格式:1.std(X):计算向量X的标准差  2.std(A):计算矩阵A的各列的标准差
%3.std(A,flag,dim)
%corrcoef():相关系数函数%多项式的表示
%在Matlab中,n次多项式用一个长度为n+1的行向量表示,如有n次多项式:p(x)=an*x^(n)+an-1*x^(n-1)+...+a1*x+a0
%则在Matlab中,p(x)表示为向量形式:[an,an-1,...,a1,a0]
%在Matlab中创建多项式向量时,注意三点:1.多项式系数向量的顺序是从高到低 2.多项式系数向量包含0次项系数即常数项,所以其长度为多项式最高次数加1
%3.如果有的项没有,系数向量相应位置应用0补足%多项式的四则运算  1.多项式的加减即相应向量进行加减
%2.多项式乘法:conv(P1,P2):多项式相乘函数,在这里,P1,P2是两个多项式系数向量
%3.多项式除法:[Q,r]=deconv(P1,P2):多项式相除函数,其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式,这里,Q和r仍是多项式系数向量
%deconv是conv的逆函数,因此有P1=conv(Q,P2)+r%多项式的求导:polyder():多项式求导函数
%1.p=polyder(P):求多项式P的导函数   2.p=ployder(P,Q):求P和Q乘积的导函数
%3.[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q%多项式的求值
%polyval(p,x):代数多项式求值
%其中,p为多项式系数向量;x可以是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式的值
%ployvalm(p,x):矩阵多项式求值   要求x为方阵,以方阵为自变量求多项式的值% a=[1,8,0,0,-10];
% b=[1,8,0,0,0];
% x=[-1,1.2;2,-1.8]
% y1=polyvalm(a,x)
% y2=polyvalm(b,x)%多项式求根:roots(p):多项式求根函数
%例:求多项式x^4+8*x^3-10的根
a=[1,8,0,0,-10];
% x=roots(a)%数据插值
%数据插值可以根据有限个点的取值状况,合理估算出附近其他点的取值,从而节约大量的实验和测试资源,节省大量的人力、物力和财力
%interp1():一维插值函数
%调用格式:Y1=interp1(X,Y,X1,method)
%根据X,Y的值计算函数在X1处的值。其中,X,Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要插值的点
%method用于指定插值方法,常用取值有四种:linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,让后在直线上选取对应插值点的数据
%nearest:最近点插值。选择最近样本点的值作为插值数据。
%pchip:分段3次埃尔米特插值。
%spline:3次样条插值。
%例:求x每改变0.1时y的值
% x=[0,3,5,7,9,11,12,13,14,15];
% y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
% x1=0:0.1:15;
% y1=interp1(x,y,x1,'spline');    %将计算的值存储在有y1中
% plot(x1,y1,x,y)
% y2=interp1(x,y,1.2,'spline')
%数据插值是一种函数逼近的方法%interp2():二维插值函数  Z1=interp2(X,Y,Z.X1,Y1,method)%曲线拟合
%例:人口预测问题
%年份 1790 1800 1810 1820 1830 1840 1850 ... 1990 2000 2010
%人口(百万) [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,63.0,76.0,92.0,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7]
%预测2020年的人口数
x=1790:10:2010;
y=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,63.0,76.0,92.0,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7];
% plot(x,y,'*');
p=polyfit(x,y,3);
polyval(p,2020)
plot(x,y,'*',x,polyval(p,x));

MATLAB学习笔记(注释超详细)相关推荐

  1. Linux 学习笔记之超详细基础linux命令 Part 3

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 2----------------- ...

  2. Spring框架学习笔记,超详细!!(4)

    Java小白开始学习Spring框架,一方面,跟着视频学习,并记录下学习笔记,方便以后复习回顾.另一方面,发布学习笔记来约束自己,学习路程还很遥远,继续加油坚持!!!希望能帮助到大家! 另外还有我的牛 ...

  3. stm32正常运行流程图_STM32单片机学习笔记(超详细整理143个问题,学习必看)...

    原标题:STM32单片机学习笔记(超详细整理143个问题,学习必看) 1.AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备 2.Stm32f ...

  4. C++学习笔记(超详细笔记记录ing)

    C++学习笔记(11) 学习是一件任重而道远的事情,与其焦虑不如动手起来,借助平台记录自己学习笔记,希望和大家多多交流,今天又是努力成为程序媛的一天! 17.类和对象 17.3 C++对象模型和thi ...

  5. 【Python学习笔记】超详细Python快速入门教程(下)

    文章目录 031 变量的作用域 032 递归函数 033 异常处理机制 034 class自定义类 035 object内置类 036 多态 037 特殊方法和属性 038 类的深拷贝和浅拷贝 039 ...

  6. vue学习笔记(超详细)

    文章目录 一. Vue基础 认识Vue.js Vue安装方式 Vue的MVVM 二. Vue基础语法 生命周期 模板语法 创建Vue, options可以放什么 语法 综合 v-on v-for遍历数 ...

  7. 爆肝3万5千字的Java学习笔记(超详细的java)

    Java学习 java入门 java三大版本 javaSE:标准版(桌面程序,控制台开发-) javaME:嵌入式开发(手机,小家电-) javaEE:E企业级开发(web端,服务器开发-) Java ...

  8. 第四章网络安全学习笔记(超详细)

    ---------------------------网络安全---------------------------- 万字长文,小编自己手打,如有勘误,敬请谅解! 网安笔记 ------------ ...

  9. Elasticsearch7.6.x学习笔记(超详细)

    Elasticsearch和solr比较 当单纯的对已有的数据进行搜索时,solr更快 当实时建立索引时,Solr会产生io阻塞,查询性能交叉,ElasticSearch具有明显优势 随着数量的增加, ...

  10. Spring学习笔记(超详细)

    spring5 1 spring概述 1.1 spring框架是什么 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的. Spring ...

最新文章

  1. 图卷积网络进行骨骼识别代码_【骨骼行为识别】2s-AGCN论文理解
  2. Java synchronized 与 lock (Reetrantlock)锁性能比较
  3. Expression Blend实例动画-大坝水位升高演示
  4. 根据数据建立分析模型是什么意思
  5. mysql key_len_浅谈mysql explain中key_len的计算方法
  6. 生活大爆炸版石头剪刀布(洛谷-P1328)
  7. 新项目jenkis配置
  8. 中芯国际科创板IPO最新招股意向书:7月7日网上申购
  9. sybase 性能监控及调优(转)
  10. Atitit 自然语言处理原理与实现 attilax总结
  11. 随机信号功率谱估计方法matlab仿真
  12. visio绘图固定图形位置
  13. deeping linux下安装配置nginx+django
  14. 基于阿里云的系统灾备方法架构与安全应急预案介绍
  15. Python数据分析与应用(一)
  16. 前端3D轨迹可视化渲染
  17. 孙空空的Vue之路-Day07-事件处理
  18. 昨天你用的 YYYY-MM-dd 被同事锤了吗?
  19. 滑动门套滑动门css,JS+CSS实现带小三角指引的滑动门效果
  20. 【实习总结】学习经验2

热门文章

  1. 经典网络结构分析:卷积神经网络的现代雏形 ---LeNet
  2. 如何给Excel减肥(相关技巧和注意事项)
  3. 最新微软产品MAK激活密钥
  4. FineBI 新增字段后 更新缓慢问题
  5. 【VC7升级VC8】将vCenter Server 7.X 升级为 vCenter Server 8 (上)—— VC 8系统要求与升级前的说明
  6. windows装机硬盘超过2T问题
  7. MFC工具条与状态条设计
  8. LeafLet实战-扩展工具栏指南
  9. request与response的笔记梳理
  10. swift subscript scraps