Matlab相关操作

​​>> a=3

a =

     3

>> a=3; //加分号就暂时不输出a
>> a

a =

     3

>> disp(a) //disp函数就是display a的意思,显示出a的数值
     3

 
>> disp(sprintf('2 decimals:%0.2f',a)) //sprintf就是可以将参数转换成字符串
2 decimals:3.00

>> a=pi;
>> a

a =

   3.141592653589793

>> format long //可以调整格式
>> a

a =

   3.141592653589793

>> format short
>> a

a =

    3.1416

>> A=[1,2,3] //逗号分隔即为一列

A =

     1     2     3

>> [1,2,3;2,3,4] //分号分隔为一行

ans =

     1     2     3
     2     3     4


>> v=1:0.2:2 //意思为从1开始,0.2为单位,跳到2

v =

  1 至 4 列

    1.0000    1.2000    1.4000    1.6000

  5 至 6 列

    1.8000    2.0000

>> v=1:6 //从1跳到6,默认1为单位

v =

     1     2     3     4     5     6

>> ones(2,3) //生成2行3列的全为1的矩阵

ans =

     1     1     1
     1     1     1

>> ans=2*ones(2,3)

ans =

     2     2     2
     2     2     2

>> w=zeros(1,3) //1行3列全为0的矩阵

w =

     0     0     0

>> w=rand(1,3) //1行3列的随机,估计是【0,1)

w =

    0.8147    0.9058    0.1270

>> rand(3,3)

ans =

    0.9134    0.2785    0.9649
    0.6324    0.5469    0.1576
    0.0975    0.9575    0.9706

>> rand(3,3)

ans =

    0.9572    0.1419    0.7922
    0.4854    0.4218    0.9595
    0.8003    0.9157    0.6557

>> randn(1,3) //更加高级的随机函数

ans =

   -1.2075    0.7172    1.6302


>> hist(ans) //生成直方图
>> eye(4) //生成单位矩阵

ans =

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

>> help eye // help加函数名可以了解更多
eye - 单位矩阵

    此 MATLAB 函数 返回标量 1。

    I = eye
    I = eye(n)
    I = eye(n,m)
    I = eye(sz)
    I = eye(classname)
    I = eye(n,classname)
    I = eye(n,m,classname)
    I = eye(sz,classname)
    I = eye('like',p)
    I = eye(n,'like',p)
    I = eye(n,m,'like',p)
    I = eye(sz,'like',p)

    另请参阅 ones, speye, zeros

    eye 的参考页
    名为 eye 的其他函数

>> eye(4,2)

ans =

     1     0
     0     1
     0     0
     0     0

 
>> A=[1 2;3 4;5 6]

A =

     1     2
     3     4
     5     6

>> size(A)

ans =

     3     2

>> sz=size(A)

sz =

     3     2

>> size(sz)

ans =

     1     2

>> size(A,1) //A矩阵的行数

ans =

     3

>> size(A,2) //A矩阵的列数

ans =

     2

>> v=[1 2 3 4]

v =

     1     2     3     4

>> length(v) //对只有一行的矩阵给出长度

ans =

     4

>> length(A) //对矩阵给出行数

ans =

     3

>> length([1;2;3;4;5]) //对向量给出长度

ans =

     5

>> pwd //现在所在位置

ans =

    '/Users/chenzeyuan/Documents/MATLAB'

>> who //查询当前的变量

您的变量为:

A    ans  sz   v    

>> whos //详细查询变量
  Name      Size            Bytes  Class     Attributes

  A         3x2                48  double              
  ans       1x34               68  char                
  sz        1x2                16  double              
  v         1x4                32  double              

>> clear ans //删去ans这个变量
>> A(3,2) //A3行2列的数

ans =

     6

>> A(2,:) %means every element along that row/column

ans =

     3     4

>> A(:,2)

ans =

     2
     4
     6

>> A([1 3],:) //给出第1行和第3行所有列的矩阵

ans =

     1     2
     5     6

>> A(:,2)=[10;11;12] //把10,11,12赋给A的第2列

A =

     1    10
     3    11
     5    12

>> A=[A,[100;101;102]] //加上100,101,102一列

A =

     1    10   100
     3    11   101
     5    12   102

>> A(:) //把矩阵变向量

ans =

     1
     3
     5
    10
    11
    12
   100
   101
   102

>> B=[11 12;13 14;15 16]

B =

    11    12
    13    14
    15    16

>> C=[A B] //矩阵A和矩阵B合起来

C =

     1    10   100    11    12
     3    11   101    13    14
     5    12   102    15    16

 
>> B=[B,[13;14;15]] 

B =

    11    12    13
    13    14    14
    15    16    15

>> C=[A;B] //把矩阵B加在矩阵A下

C =

     1    10   100
     3    11   101
     5    12   102
    11    12    13
    13    14    14
    15    16    15

>> size(C)

ans =

     6     3

>> A=[1 2;3 4;5 6]

A =

     1     2
     3     4
     5     6

>> B=[11 12;13 14;15 16]

B =

    11    12
    13    14
    15    16

>> C=[1 1;2 2]

C =

     1     1
     2     2

>> A*C //进行矩阵的运算

ans =

     5     5
    11    11
    17    17


>> A .^ 2 //A矩阵所有数乘以2

ans =

     1     4
     9    16
    25    36

>> log(A) //矩阵所有数求log

ans =

         0    0.6931
    1.0986    1.3863
    1.6094    1.7918

>> exp(A) //矩阵所有数进行e的幂运算,次数为矩阵对应的值

ans =

    2.7183    7.3891
   20.0855   54.5982
  148.4132  403.4288

>> abs(A) //求绝对值

ans =

     1     2
     3     4
     5     6

>> ones(3,1) //3行1列全为1

ans =

     1
     1
     1

>> ones(3,2)

ans =

     1     1
     1     1
     1     1

>> A+ones(3,2)

ans =

     2     3
     4     5
     6     7

>> A+1 //A+1==A+ones(3,2),都是对所有数加一

ans =

     2     3
     4     5
     6     7

>> A' //转置矩阵

ans =

     1     3     5
     2     4     6

>> (A')'

ans =

     1     2
     3     4
     5     6

>> a=[1 15 2 0.5]

a =

    1.0000   15.0000    2.0000    0.5000

 
>> val=max(a) //求最大值

val =

    15

>> [val,ind]=max(a) //前面为最大值,后为其下标

val =

    15


ind =

     2

>> max(A) //对于一个矩阵来说,就是对每列求最大值

ans =

     5     6

>> a<3 //比3小的为1,大的为0

ans =

  1×4 logical 数组

   1   0   1   1

>> find(a<3) //找到比3小的数的下标

ans =

     1     3     4

>> A=magic(3) //生成3X3的矩阵,行与列加起来都一样

A =

     8     1     6
     3     5     7
     4     9     2

>> [r,c]=find(A>=7) //对于矩阵的find,r表示行,c表示列

r =

     1
     3
     2


c =

     1
     2
     3

>> a

a =

    1.0000   15.0000    2.0000    0.5000

>> sum(a) //计算总和,都加起来

ans =

   18.5000

>> prod(a) //全部相乘

ans =

    15

>> sum(A) //对于矩阵,对每列求和

ans =

    15    15    15

>> prod(A) //对于矩阵,每列求乘积

ans =

    96    45    84

>> floor(a) //向下求整

ans =

     1    15     2     0

>> ceil(a) //向上求整

ans =

     1    15     2     1

>> rand(3) //生成随机3X3矩阵

ans =

    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575

>> max(A)

ans =

     8     9     7

 
>> b=rand(3)

b =

    0.9649    0.9572    0.1419
    0.1576    0.4854    0.4218
    0.9706    0.8003    0.9157

>> c=rand(3)

c =

    0.7922    0.0357    0.6787
    0.9595    0.8491    0.7577
    0.6557    0.9340    0.7431

>> max(b,c) //求b,c矩阵对应位置的最大值

ans =

    0.9649    0.9572    0.6787
    0.9595    0.8491    0.7577
    0.9706    0.9340    0.9157

>> max(A,[],1) //对于列里找最大

ans =

     8     9     7

>> max(A,[],2) //对于行里找最大

ans =

     8
     7
     9

>> max(max(A))

ans =

     9

>> A(:)

ans =

     8
     3
     4
     1
     5
     9
     6
     7
     2

>> max(A(:))

ans =

     9

>> A=magic(9)

A =

  1 至 7 列

    47    58    69    80     1    12    23
    57    68    79     9    11    22    33
    67    78     8    10    21    32    43
    77     7    18    20    31    42    53
     6    17    19    30    41    52    63
    16    27    29    40    51    62    64
    26    28    39    50    61    72    74
    36    38    49    60    71    73     3
    37    48    59    70    81     2    13

  8 至 9 列

    34    45
    44    46
    54    56
    55    66
    65    76
    75     5
     4    15
    14    25
    24    35

>> sum(A,1) //对每列求和

ans =

  1 至 7 列

   369   369   369   369   369   369   369

  8 至 9 列

   369   369

>> sum(A,2) //对每行求和

ans =

   369
   369
   369
   369
   369
   369
   369
   369
   369

>> eye(9) //生成单位矩阵

ans =

  1 至 7 列

     1     0     0     0     0     0     0
     0     1     0     0     0     0     0
     0     0     1     0     0     0     0
     0     0     0     1     0     0     0
     0     0     0     0     1     0     0
     0     0     0     0     0     1     0
     0     0     0     0     0     0     1
     0     0     0     0     0     0     0
     0     0     0     0     0     0     0

  8 至 9 列

     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     1     0
     0     1

>> A .* eye(9)

ans =

  1 至 7 列

    47     0     0     0     0     0     0
     0    68     0     0     0     0     0
     0     0     8     0     0     0     0
     0     0     0    20     0     0     0
     0     0     0     0    41     0     0
     0     0     0     0     0    62     0
     0     0     0     0     0     0    74
     0     0     0     0     0     0     0
     0     0     0     0     0     0     0

  8 至 9 列

     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
    14     0
     0    35

>> flipud(eye(9)) //换个对角线

ans =

  1 至 7 列

     0     0     0     0     0     0     0
     0     0     0     0     0     0     0
     0     0     0     0     0     0     1
     0     0     0     0     0     1     0
     0     0     0     0     1     0     0
     0     0     0     1     0     0     0
     0     0     1     0     0     0     0
     0     1     0     0     0     0     0
     1     0     0     0     0     0     0

  8 至 9 列

     0     1
     1     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0

>> pinv(A) //自反矩阵

ans =

  1 至 4 列

    0.0005   -0.0012    0.0017    0.0126
    0.0003    0.0003    0.0128   -0.0122
   -0.0011    0.0140   -0.0120    0.0003
    0.0126   -0.0120    0.0003    0.0003
   -0.0108    0.0003    0.0003    0.0003
    0.0003    0.0005    0.0001   -0.0011
    0.0003    0.0003    0.0003    0.0005
    0.0003    0.0003   -0.0011    0.0017
    0.0003    0.0003    0.0003    0.0003

  5 至 8 列

   -0.0121    0.0003    0.0003    0.0003
    0.0003   -0.0011    0.0017    0.0003
    0.0005    0.0001    0.0003    0.0003
   -0.0011    0.0017    0.0005    0.0001
    0.0003    0.0003    0.0003    0.0003
    0.0017    0.0003    0.0003    0.0126
    0.0001    0.0003    0.0126   -0.0134
    0.0003    0.0128   -0.0122    0.0003
    0.0127   -0.0120   -0.0011    0.0018

  9 列

    0.0003
    0.0003
    0.0003
    0.0003
    0.0114
   -0.0120
    0.0017
    0.0003
    0.0001

>> A=magic(3)

A =

     8     1     6
     3     5     7
     4     9     2

>> pinv(A)

ans =

    0.1472   -0.1444    0.0639
   -0.0611    0.0222    0.1056
   -0.0194    0.1889   -0.1028

>> pinv(A)*A

ans =

    1.0000    0.0000   -0.0000
   -0.0000    1.0000    0.0000
    0.0000   -0.0000    1.0000

>> t=[0:0.01:0.98] 

t =

  1 至 4 列

         0    0.0100    0.0200    0.0300

  5 至 8 列

    0.0400    0.0500    0.0600    0.0700

  9 至 12 列

    0.0800    0.0900    0.1000    0.1100

  13 至 16 列

    0.1200    0.1300    0.1400    0.1500

  17 至 20 列

    0.1600    0.1700    0.1800    0.1900

  21 至 24 列

    0.2000    0.2100    0.2200    0.2300

  25 至 28 列

    0.2400    0.2500    0.2600    0.2700

  29 至 32 列

    0.2800    0.2900    0.3000    0.3100

  33 至 36 列

    0.3200    0.3300    0.3400    0.3500

  37 至 40 列

    0.3600    0.3700    0.3800    0.3900

  41 至 44 列

    0.4000    0.4100    0.4200    0.4300

  45 至 48 列

    0.4400    0.4500    0.4600    0.4700

  49 至 52 列

    0.4800    0.4900    0.5000    0.5100

  53 至 56 列

    0.5200    0.5300    0.5400    0.5500

  57 至 60 列

    0.5600    0.5700    0.5800    0.5900

  61 至 64 列

    0.6000    0.6100    0.6200    0.6300

  65 至 68 列

    0.6400    0.6500    0.6600    0.6700

  69 至 72 列

    0.6800    0.6900    0.7000    0.7100

  73 至 76 列

    0.7200    0.7300    0.7400    0.7500

  77 至 80 列

    0.7600    0.7700    0.7800    0.7900

  81 至 84 列

    0.8000    0.8100    0.8200    0.8300

  85 至 88 列

    0.8400    0.8500    0.8600    0.8700

  89 至 92 列

    0.8800    0.8900    0.9000    0.9100

  93 至 96 列

    0.9200    0.9300    0.9400    0.9500

  97 至 99 列

    0.9600    0.9700    0.9800

>> y1=sin(2*pi*4*t)

y1 =

  1 至 4 列

         0    0.2487    0.4818    0.6845

  5 至 8 列

    0.8443    0.9511    0.9980    0.9823

  9 至 12 列

    0.9048    0.7705    0.5878    0.3681

  13 至 16 列

    0.1253   -0.1253   -0.3681   -0.5878

  17 至 20 列

   -0.7705   -0.9048   -0.9823   -0.9980

  21 至 24 列

   -0.9511   -0.8443   -0.6845   -0.4818

  25 至 28 列

   -0.2487   -0.0000    0.2487    0.4818

  29 至 32 列

    0.6845    0.8443    0.9511    0.9980

  33 至 36 列

    0.9823    0.9048    0.7705    0.5878

  37 至 40 列

    0.3681    0.1253   -0.1253   -0.3681

  41 至 44 列

   -0.5878   -0.7705   -0.9048   -0.9823

  45 至 48 列

   -0.9980   -0.9511   -0.8443   -0.6845

  49 至 52 列

   -0.4818   -0.2487   -0.0000    0.2487

  53 至 56 列

    0.4818    0.6845    0.8443    0.9511

  57 至 60 列

    0.9980    0.9823    0.9048    0.7705

  61 至 64 列

    0.5878    0.3681    0.1253   -0.1253

  65 至 68 列

   -0.3681   -0.5878   -0.7705   -0.9048

  69 至 72 列

   -0.9823   -0.9980   -0.9511   -0.8443

  73 至 76 列

   -0.6845   -0.4818   -0.2487   -0.0000

  77 至 80 列

    0.2487    0.4818    0.6845    0.8443

  81 至 84 列

    0.9511    0.9980    0.9823    0.9048

  85 至 88 列

    0.7705    0.5878    0.3681    0.1253

  89 至 92 列

   -0.1253   -0.3681   -0.5878   -0.7705

  93 至 96 列

   -0.9048   -0.9823   -0.9980   -0.9511

  97 至 99 列

   -0.8443   -0.6845   -0.4818

>> plot(t,y1) //生成一个图
>> y2=cos(2*pi*4*t)

y2 =

  1 至 4 列

    1.0000    0.9686    0.8763    0.7290

  5 至 8 列

    0.5358    0.3090    0.0628   -0.1874

  9 至 12 列

   -0.4258   -0.6374   -0.8090   -0.9298

  13 至 16 列

   -0.9921   -0.9921   -0.9298   -0.8090

  17 至 20 列

   -0.6374   -0.4258   -0.1874    0.0628

  21 至 24 列

    0.3090    0.5358    0.7290    0.8763

  25 至 28 列

    0.9686    1.0000    0.9686    0.8763

  29 至 32 列

    0.7290    0.5358    0.3090    0.0628

  33 至 36 列

   -0.1874   -0.4258   -0.6374   -0.8090

  37 至 40 列

   -0.9298   -0.9921   -0.9921   -0.9298

  41 至 44 列

   -0.8090   -0.6374   -0.4258   -0.1874

  45 至 48 列

    0.0628    0.3090    0.5358    0.7290

  49 至 52 列

    0.8763    0.9686    1.0000    0.9686

  53 至 56 列

    0.8763    0.7290    0.5358    0.3090

  57 至 60 列

    0.0628   -0.1874   -0.4258   -0.6374

  61 至 64 列

   -0.8090   -0.9298   -0.9921   -0.9921

  65 至 68 列

   -0.9298   -0.8090   -0.6374   -0.4258

  69 至 72 列

   -0.1874    0.0628    0.3090    0.5358

  73 至 76 列

    0.7290    0.8763    0.9686    1.0000

  77 至 80 列

    0.9686    0.8763    0.7290    0.5358

  81 至 84 列

    0.3090    0.0628   -0.1874   -0.4258

  85 至 88 列

   -0.6374   -0.8090   -0.9298   -0.9921

  89 至 92 列

   -0.9921   -0.9298   -0.8090   -0.6374

  93 至 96 列

   -0.4258   -0.1874    0.0628    0.3090

  97 至 99 列

    0.5358    0.7290    0.8763

>> plot(t,y1);
>> hold on; //让上面生成的图不消失
>> plot(t, y2,'r') //这里生成的图加到上面去
>> xlabel('time') //x轴名字
>> ylabel('value') //y轴名字
>> legend('sin','cos') //提示sin是什么颜色,cos是什么颜色
>> title('my plot') //图的标题
>> print -dpng 'myplot.png' //生成图
>> close //关闭图
>> figure(1);plot(t,y1); //给每个图命名,同时不会被下面生成的图取代
>> figure(2);plot(t,y2);
>> close
>> close
>> subplot(1,2,1) //生成1X2的图,可进入第一个
>> plot(t,y1) //在第一个图里生成
>> subplot(1,2,2) //生成上述图,可进入第二个
>> plot(t,y2) //在第二个图里生成
>> close
>> subplot(1,2,1)
plot(t,y1)
subplot(1,2,2)
plot(t,y2)
>> axis([0.5 1,-1 1]) //前两个参数控制x的范围,后两个控制y的范围
>> clf; //清除图
>> A=magic(5)

A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

>> imagesc(A) //有眼色标记的矩阵的图
>> imagesc(A),colorbar,colormap gray //调出colorbar同时将颜色调为灰色
>> v=zeros(10,1)

v =

     0
     0
     0
     0
     0
     0
     0
     0
     0
     0

>> for i=1:10,
v(i)=2^i;
end;
>> v

v =

           2
           4
           8
          16
          32
          64
         128
         256
         512
        1024

>> indices=1:10;
>> indices

indices =

  1 至 7 列

     1     2     3     4     5     6     7

  8 至 10 列

     8     9    10

>> for i=indices,
disp(i);
end;
     1

     2

     3

     4

     5

     6

     7

     8

     9

    10

>> v

v =

           2
           4
           8
          16
          32
          64
         128
         256
         512
        1024

>> i=1;
>> while i<=5,
v(i)=100;
i=i+1;
end;
>> v

v =

         100
         100
         100
         100
         100
          64
         128
         256
         512
        1024

>> v(1)=2;
>> if v(1)==1,
disp(v(1));
elseif v(1)==2,
disp('ufck pff');
else,
disp('co');
end;
ufck pff

>> hh(3) //在搜索路径里放置.m后缀的文件,里面生成函数,即可调用

ans =

     9

>> A=magic(3)

A =

     8     1     6
     3     5     7
     4     9     2

>> x=[1;2;3]

x =

     1
     2
     3

>> A .* x

ans =

     8     1     6
     6    10    14
    12    27     6


 
>> A*x

ans =

    28
    34
    28

>> sum(A*x)

ans =

    90

>> A(:,1:2)

ans =

     8     1
     3     5
     4     9

>> A(1:3,1:2)

ans =

     8     1
     3     5
     4     9

>> A/4

ans =

    2.0000    0.2500    1.5000
    0.7500    1.2500    1.7500
    1.0000    2.2500    0.5000

>> A ./ 4

ans =

    2.0000    0.2500    1.5000
    0.7500    1.2500    1.7500
    1.0000    2.2500    0.5000

>> log(A)

ans =

    2.0794         0    1.7918
    1.0986    1.6094    1.9459
    1.3863    2.1972    0.6931


>> A .^ 2

ans =

    64     1    36
     9    25    49
    16    81     4
    原文作者:loserChen
    原文地址: https://www.jianshu.com/p/a494dd0f6cea
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞