Matlab--入门知识点(一)
(仅提供参考方法)复数、逻辑类型、结构体的构造、单元数组的构造与读取、.函数句柄、矩阵和length函数、矩阵中行(列)互换、矩阵的逆、矩阵的最简形和矩阵的标准正交化
1.复数
x = 32;y = 3;
z=complex(x,y)
z =
32 + 3i
z=complex(x)
z =
32.0000 + 0.0000i
2.逻辑类型
logical(10)
ans = 1
logical(0)
ans = 0
3.结构体的构造
Huan.name='Sara';
Huan.score=100;
Huan.salary=[123456];
Huan(2).name='Tina';
Huan(2).score=98;
Huan(2).salary=[126];
Huan(3).score=78; %具有同样多的属性名,Huan(3).name、Huan(3).salary被定义为空矩阵
personal=struct('name','jhdj','score',100) %结构体也可以这样定义
personal =
name: 'jhdj'
score: 100
4.单元数组的构造与读取
c{1,1}='butterfly';
c{1,2}=@cos;
c(2,1)={[1 2 3]}; %两种不同的标志方法
c(2,2)={false};
str=c{1,1}; %读取单个数据
x=c(1,:); %读取若干个数据
5.函数句柄:是用来间接调用函数的数据类型。
fhandl=@sin; %可以利用fhandl来调用sin函数
fhandl(0)
ans = 0
6.矩阵和length函数
randperm(n) %产生一个1~n的随机排列
compan(u) %产生多项式u的伴随矩阵
repmat(A,M,N) %得到M*N个A的矩阵
blkdiag(A,B,...) %构造块对角化矩阵
A=[1 0 5;2 -4 8;-5 3 -1];
x0=[0;1;1];
t=0:0.03:3;
xt=[];
for i=1:length(t) %length(t) 计算t的长度,t可为矩阵或者字符串
xt(i,:)=expm(t(i)*A)*x0; %expm() 以e为底的幂
end;
plot3(xt(:,1),xt(:,2),xt(:,3),'o') %三维画图
grid; %加上网格线
7.矩阵中行(列)互换
A = [2 1 4 0;1 -1 3 4];
A([1 2],:)=A([2 1],:) %互换矩阵A的第一行和第二行
A =
1 -1 3 4
2 1 4 0
A(:,[1 2])=A(:,[2 1]) %互换矩阵A的第一列和第二列
A =
1 2 4 0
-1 1 3 4
8.矩阵的逆、矩阵的最简形
A=[3 -2 0 -1;0 2 2 1;1 -2 -3 -2;0 1 2 1];
B=inv(A) %矩阵的逆
B =
1.0000 1.0000 -2.0000 -4.0000
0 1.0000 0 -1.0000
-1.0000 -1.0000 3.0000 6.0000
2.0000 1.0000 -6.0000 -10.0000
C=rref(A) %矩阵的最简行
C =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
9.矩阵的标准正交化
clear;
a(:,1)=[0 -1 1]'; %固定,直接换
a(:,2)=[-1 0 1]';
a(:,3)=[1 1 0]';
q=[];w=[];
[n,m]=size(a);
p=zeros(m,1);
q(:,1)=a(:,1)/(a(:,1)'*a(:,1))^0.5;
for i=2:m
p=zeros(m,1);
for j=1:i-1
p=p+(a(:,i)'*q(:,j))*q(:,j);
end
w=(a(:,i)-p);
q(:,i)=w/(w'*w)^0.5;
end
q
q =
0 -0.8165 0.5774
-0.7071 0.4082 0.5774
0.7071 0.4082 0.5774