Matlab--入门知识点(一)

 

                                                     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

猜你喜欢

转载自blog.csdn.net/jly164260234/article/details/80983199