Matlab数据及其运算(快速过目版)

1;%辅助命令
path(path,'xx')%设置路径
%;分号不显示上条语句结果,...三个点为续航符,%为注释符
help %完全匹配,m文件显示
lookfor %范围匹配 -all查询全部,Tab可模糊查询
doc xx%用xml查看某个命令的语法,

2.1;%数据类型
int();%类型转换
complex();
real();%求实部
image()%求虚部
conj();%求共轭复数
class();%数据类型
double;singel()
forma xx %格式化某个数据类型,只影响输出格式,默认short

2.2;%矩阵表示
A=[1,2,3,4,5,6];%直接建立矩阵
B=[6,5,4,3,2,1,];
C2=[A,B;B,A];%利用矩阵构建更大矩阵,用此可以把实部矩阵和虚部矩阵构成复数矩阵
D=A+B*1i;
D;

%冒号表达式产生行向量
t=0:1:5;
t1=linspace(1,5,5);%等价于a:(b-a)/(n-1):b

%元素引用,下标引用和序号引用,后者采用列排序
A=[1,2,3;4,5,6];
A(4,5)=10;  %超过了原矩阵的行列则会自动扩增,没改值的拿0填充
A(3)=5; %A(i,j)=A((j-1)*m+i)
D=sunb2ind(size(A),[1,2;2,2],[1,1;3,2]);%指定行列下标转化为序号
[I,J]=ind2sub(size(A),[1,3,5]);%size(A)=[3,3]
length(A);%求最长维度
ndims(A);%求矩阵的维度
numel(A);%求矩阵的元素个数

%冒号表达式获得子矩阵
%A(i,j);A(i,:);A(:,j);A(i:i+m;j:j+m);A(i:i+m,:);A(:,j:j+m),A(:),A(:,:)
%A(end,:);A([1,4],3:end)

%利用空矩阵删除矩阵元素,也可以赋值取某个区间缩小删除
X=[];
A=[1:3;4:6;7:9];
A(:,[2,4])=[];%不能=X,矩阵size不匹配
A;

%改变矩阵形状
A=1:1:12;
Z=reshape(A,2,6);%不改变逻辑结构和储序顺序,也就是还是按照列排序改变
Z(:);%变成列向量,等价于reshape(A,12,1),行向量转置Z’
%行向量变换 [G(1,:)';G(2,:)';G(3,:)']

2.3;%变量及其操作
%_下划线不能放在开头,只能在后面,区分大小写
%ans默认赋值变量,i,j代表虚数单位,pi圆周率,NaN代表非数,eps浮点相对精度,inf无穷大Inf
bianliang=3;
3;%ans=3
y1=exp(pi/2);%e的pi/2次方
z=cos(47*pi/180);%cos47°
%预定义变量 ans,eps,pi,i,j,inf,Inf,NaN,nan....
who %查看有哪些变量
whos %同上并给出大小,所占字节数,数据类型等信息
clear %删除工作空间中的所有变量
%可在工作区新建变量然后存储大型矩阵
%save 路径文件名 [变量名表] -append -ascii; load命令表示把变量载入工作区


2.4;%内部函数
abs();%绝对值,复数的模,字符串首字母的ASCII码值
round();
x(:);%==x,x(95:99)连续引用某区间元素,x([98,95,93])
%sqrt,log,log10,log2,exp,pow2,rem,mod,fix.floor,ceil,sign,gcd,lcm,factorial,isprime,primes,perms,sin,cos,tan
%rem求余商数fix向0方向取整,mod求余向floor方向取整,rem(a,0)=NaN,mod(a,0)=a

%用于矩阵的超越函数,在上述函数名后加m,且参数需要为方阵
A=[1,2;3,4];
B=sqrtm(A);
res10=B*B;
%实对称正定矩阵和复埃尔米特正定阵能得到平方根,若A中含负的特征值,sqrtm得到复数矩阵
A=[4,9;16,25];
eig(A);
B1=sqrtm(A);
%logm(),expm(),两者互逆
%普通矩阵函数
funm(A,@exp);%等价于expm(A),但是funm不能用于求矩阵平方根,只能用sqrtm

2.5;%MATLAB运算
A=[1,2;3,4];
B=[5,6;7,8];
R1=A+B;%加减法
R2=A+2;
R3=A-B;
R4=A-2;
R5=A*B;%乘法
R6=A*2;
R7=A\B;%除法,等价于inv(A)*B
R8=A/B;
R9=A/2;
R10=2\A;
R11=A^2;%乘方,开方
R12=A^0.1;
R13=A.*B;%点运算,指矩阵对应的元素进行运算,不考虑矩阵规则,要求矩阵类型相同
%.* ;./ ;.\ ;.^共4种但,A./B和B.\A的值是相等的,指数可以是标量,底也可以是标量
A=[1,2,3];
B=[4,5,6];
C=A.^2;
C1=2.^[A B];
y=sin(A).*cos(A);

%关系运算:< <= > >= == ~=,lt,le,gt,ge,eq,ne
eq(2,3)%标量直接比大小,同型矩阵对应元素比大小得01矩阵,标量和矩阵比大小同理
%all(全1则1),any(有1则1),find,exist,isempty,isfloat...
%all(all())比较两个矩阵是否相等,看全一得到一个结果,向量只需要一个all
A=[5,6,2];
K=find(A>4);
res=A(K);

%逻辑运算: & | ~  ; and() or() not() xor(),结果参考关系运算的给出解释
A=[4,65,-54,0,6];
B=[0,5,3,2,-6];
res1=xor(A>10,B<10);%值同为0,不同为1,与或不一样

2.6;%字符串
str1='I like you     ';
str2='I''m your father';
res3=str1(1:3);
str3=[str1;str2];%字符串矩阵,需要保证各行的字符串相等,常用空格补齐
res4=str3(2,3);
reverse=str1(end:-1:1);%逆序
k=find(str1>'a' & str1<'z');
str1(k)=str1(k)-('a'-'A');%等价+('A'-'a'),a=A+32
res5=length(k);

%字符串操作和字符串的数值转换
t=pi;
m='[t,sin(t),cos(t)]';
y3=eval(m);
str4='MATLAB';
temp1=abs(str4);
str5=char(temp1+32);

%字符串连接和字符串比较以及查找替换
str6=['I','am','man'];%字符串向量法
str7=strcat('I','am','man');%strcat函数法
res6='www0'>='w123';%若字符串长度相同,比较每个字符的ASCII码得到数值向量
strcmp(s1,s2);%比较字符串S1S2是否相等,等1,不等0
strncmp(s1,s2,n);%比较前n个字符是否相等
strcmpi(s1,s2);%在忽略大小写的前提下
strncmpi(s1,s2,n);
strfind(s1,s2);%返回短字符串在长字符串中的开始位置findstr
strrep(s1,s2,s3)%将S1中所有子字符串S2替换为S3

2.7;%结构数据和单元数据
a(1).x1=10;a(1).x2='zuo';a(1).x3=[1,2,3];%成员引用赋值得到结构数据
a(2).x1=12;a(2).x2='liu';a(2).x3=[4,5,6];
a(1).x1.x11=90;a(1).x1.x12=70;a(1).x1.x13=165;
a(1).x4='add';%添加和赋值
a=rmfield(a,'x4');%删除

b={10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];14,'cai',[13,890;67,213]};
%单元矩阵的建立和一般矩阵相同,但有{}和[]的区别
b{3,3};%下标来显示单元矩阵元素
y.x1=34;y.x2=56;
b{3,4}=y;
b(3)=[];%删除第三个元素,b{3}=[]的意思时将第三个元素置为空矩阵
celldisp(b)%显示整个单元矩阵

猜你喜欢

转载自blog.csdn.net/weixin_56115549/article/details/127009071
今日推荐