Matlab常用语法和基本运算

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/deramer1/article/details/83035935

(一)Matlab基本操作

   1> 实数的加减乘除乘方等运算

      可直接在Matlab的控制台下进行对应的操作,如下。

>> 5+6
ans =
    11

>> 3-2
ans =
     1

>> 5*7
ans =
    35

>> 5*8
ans =
    40

>> 1/2
ans =
    0.5000

>> 2^6
ans =
    64

  2>逻辑运算,1表示真,0表示假

>> 1 == 2               %false
ans =
     0

>> 1 ~= 2               % ~=表示不等于
ans =
     1

>> 1 && 0               % 与  
ans =
     0

>> 1 || 0               % 或
ans =
     1

>> xor(1,0)             %异或
ans =
     1

   3>变量赋值和矩阵初始化

>> a = 3               %变量赋值
a =
     3

>> b = 'hi';           %变量赋值的时候,最后的末尾有一个分号
>> b = 'hi'            %其中有:表示不把结果输出到控制台,没有分号表示将结果输出到控制台
b =
hi

>> a = pi;             %在向控制台输出结果的时候,也可以用disp()函数
>> disp(a)
    3.1416

>> a = pi;
>> disp(a)
    3.1416
>> format long         %format long命令是让数值输出的位数变的多
>> a
a =
   3.141592653589793

>> format short        %format short命令是让数值输出的位数变的少
>> a
a =
    3.1416
-------------------------------------------------------------------------------------


>> A = [1 2; 3 4; 5 6] %建立3行2列的矩阵
A =
     1     2
     3     4
     5     6

>> v = [1;2;3]         %建立3行一列/列向量
v =
     1
     2
     3

>> v = 1:6             %建立6个数
v =
     1     2     3     4     5     6


>> v = 1:0.1:2         %从1开始到2,每隔0.1建立一个数
v =
  1 至 6 列
    1.0000    1.1000    1.2000    1.3000    1.4000    1.5000
  7 至 11 列
    1.6000    1.7000    1.8000    1.9000    2.0000

>> ones(2,3)           %建立3行2列的全一矩阵
ans =
     1     1     1
     1     1     1

>> w = zeros(1,3)      %建立3行1列的全0矩阵
w =
     0     0     0

>> w = rand(1,3)       %建立1行3列的随机矩阵
w =
    0.8147    0.9058    0.1270

>> eye(5)              %建立5行5列的单位矩阵
ans =
     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

>> 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

(二)Matlab移动数据

>> A = [1 2;3 4; 5 6]               %建立一个3行2列的矩阵
A =
     1     2
     3     4
     5     6

>> size(A)                          %求矩阵的大小,为3行2列
ans =
     3     2

>> size(A,1)                        %求矩阵行的大小
ans =
     3

>> size(A,2)                        %求矩阵列的大小
ans =
     2

>> length(A)                        %求矩阵行的大小和列的大小中较大的
ans =
     3

>> load ex1data1.txt                %从文件中加载数据
>> ex1data1                         %显示出文件中的数据
ex1data1 =
    6.1101   17.5920
    5.5277    9.1302
    8.5186   13.6620
    ......   .......

>> who                              %可以用who来表示当前变量

您的变量为:
A         ans       ex1data1         

>> whos                             %用来显示出变量的信息 
  Name           Size            Bytes  Class     Attributes

  A              3x2                48  double              
  ans            1x18               36  char                
  ex1data1      97x2              1552  double              

>> clear ans                        %删除变量信息

>> v = ex1data1(1:10)               %将ex1data1中的数据1-10赋值给v

>> save hello.mat v;                %讲变量v保存到hello中,后缀名为.mat

>> save hello.txt v -ascii          %将变量v保存到hello中,后缀名为.txt格式

>> A                                %输出矩阵A的值
A =
     1     2
     3     4
     5     6
>> A(3,2)                           %输出矩阵中A(3,2)的元素
ans =
     6

>> A(2,:)                           %输出矩阵中的第二行元素
ans =
     3     4

>> A(:,2)                           %输出矩阵中的第二列元素
ans =
     2
     4
     6

>> A([1 3],:)                       %输出矩阵中的第一行,第三行的元素
ans =
     1     2
     5     6

>> A(:,2)=[10;11;12]                %将矩阵中第二列元素替换为[10;11;12]
A =
     1    10
     3    11
     5    12

>> A = [A,[100;101;102]]            %在矩阵后新添加一列,在这里用;间隔表示元素是列元素。
A =                                 %用,间隔,表示元素是行元素。如下所示
     1    10   100
     3    11   101
     5    12   102

>> A=[A;[100,101,102]]
A =
     1    10   100
     3    11   101
     5    12   102
   100   101   102


   (三)  Matlab计算数据

    1>矩阵元素的基本运算:矩阵乘法,矩阵中对应元素乘积等

>> A = [1 2;3 4;5 6]               %建立3行2列矩阵A
A =
     1     2
     3     4
     5     6

>> B =[11 12;13 14;15 16]          %建立3行2类矩阵B
B =
    11    12
    13    14
    15    16

>> C = [1 1; 2 2]                  %建立2行2列矩阵C
C =
     1     1
     2     2

>> A*C                             %计算矩阵A和矩阵C的乘积
ans =
     5     5
    11    11
    17    17

>> A .* B                          %计算矩阵A中的每个元素和B中的每个元素对应相乘。
ans =
    11    24
    39    56
    75    96

>> A .^ 2                          %表示把A中的每个元素都平方,其中.的意思是操作元素。 
ans =
     1     4
     9    16
    25    36

>> A'                              %矩阵的转置
ans =

     1     3     5
     2     4     6

>> A = magic(3)                    %建立幻方矩阵
A =
     8     1     6
     3     5     7
     4     9     2

>> pinv(A)                         %对矩阵A求逆
ans =
    0.1472   -0.1444    0.0639
   -0.0611    0.0222    0.1056
   -0.0194    0.1889   -0.1028

>> A(:)                            %将3行3列的矩阵变成9行1列的矩阵
ans =
     8
     3
     4
     1
     5
     9
     6
     7
     2
-------------------------------------------------------------------------------------
%对矩阵进行函数操作
>> v = [1;2;3]                     %建立3行1列矩阵
v =
     1
     2
     3

>> 1 ./v                           %对矩阵中每个元素取倒数 
ans =
    1.0000
    0.5000
    0.3333

>> exp(v)                          %对每个元素进行指数操作
ans =
    2.7183
    7.3891
   20.0855

>> -v                              %矩阵中每个元素取反
ans =
    -1
    -2
    -3

   (四)  Matlab数据绘制

     1>用matlab进行数据绘制

>> t = [0:0.01:0.98];                  %初始化自变量的范围
>> y1 = sin(2*pi*4*t);                 %初始化因变量的范围,y1为正弦函数
>> y2 = cos(2*pi*4*t);                 %初始化因变量的范文,y2为余弦函数

>> plot(t,y1)                          %绘制正弦函数图像
>> hold on                             %运行此命令是为了让两个函数图像绘制在一起
>> plot(t,y2)                          %绘制余弦函数图像
>> xlabel('time')                      %x坐标的标签
>> ylabel('value')                     %y坐标的标签
>> legend('sin','cos')                 %图像标记
>> title('my plot')                    %主题
>> print -dpng 'myPlot.png'            %保存图像
>> close                               %关闭图像

>> subplot(1,2,1)                      %将图像分为两部分,在两部分上分别绘制
>> plot(t,y1)
>> subplot(1,2,2)                      
>> plot(t,y2)
>> axis([0.5 1 -1 1])

 做出的图像如下所示:

 

 

 参考资料:网易云课堂-吴恩达-机器学习公开课

猜你喜欢

转载自blog.csdn.net/deramer1/article/details/83035935
今日推荐