MATLAB 变量

2024 年 8 月 29 日 | 4 分钟阅读

目标: 学习数据类型、常量和变量、字符、运算符、赋值语句。 考虑向量和矩阵命令,对向量和矩阵进行运算,以及矩阵操作。

变量: MATLAB 变量是包含一个区域的内存区域,该区域由用户指定的名称已知。

这些变量有两种类型

  • double: - 64 位 (10^-308 到 10^308,具有 15 到 16 位有效十进制数字)。
    e.g:
    var=10.5  //Real value
    var=10i , var=-4j //Imaginary value 
    var=10+10i
  • char: - 16 位 (-32768-32767)
    e.g:
    var='This is a character string';

变量的初始化

  • 赋值语句: 这是最简单的,用于小型数组。
                变量=表达式;
    其中变量是名称,表达式是标量常量、数组或约束、其他变量和数学运算的组合。
    每行中的元素数量必须相同。 此外,每列中的元素数量也必须相同。
            >> var= [3.4]        //creates a 1x1 array with value 3.4
                         var = 3.4000

            >> var= [1.0 2.0 3.0]  // creates a 1x3 array with value [1 2 3] 
                         var=1 2 3

              >> var= [1.0;2.0;3.0]  // creates a 3x1 array 
                           var =    1
                                        2
                                        3
                >> var= [1,2,3;4,5,6]  //creates a 2x3 array
                             var =   1     2     3
                                        4     5     6
                >> var= [1,2,3
                               4,5,6]    //creates a 2x3 array
                              var =  1     2     3 
                                         4     5     6
                  >> var= []     //creates an empty array 
                               var = []
                  >> var1= [0 1+7]
                                 var1 = 0     8
                  >> var2=[var1(2) 7 var1]
                              var2 =  8     7     0     8
                  >> var3(2,3) =5
                              var3 = 0     0     0
                                         0     0     5
                  >> var3(3,3) =6
                                   var3 =0     0     0
                         0      0     5
                                             0     0     6
  • 快捷表达式
>> x= [1:2:10]
        x =    1     3     5     7     9

快捷方式可以与转置运算符 (') 组合使用,以初始化列向量。

               >> f= [1:4]'
                        f =1
                            2
                            3
                            4
               >> g=[1:4]
                         g =1     2     3     4
             >> h=[g',g']
                        h =1     1
                             2     2
                             3     3
                         4     4
  • 内置函数
    Zeros
                  >> a=zeros (2)
                            a =0     0
                                 0     0
                >> b=zeros (2,3)
                           b = 0     0     0
                                 0     0     0

               >> c= [1,2;3,4]
                        c =1     2
                             3     4
 
              >> d=zeros(size(c))

                        d =     0     0
                                  0     0

Ones: 0 替换为 1

               >> f=ones (4)
                        f =     1     1     1     1
                                 1     1     1     1
                                 1     1     1     1
                                 1     1     1     1

Eyes: 生成包含单位矩阵的数组,其中所有对角线元素为 1,而所有非对角线元素为 0。

                >> e=eye(4)
                           e =     1     0     0     0
                                     0     1     0     0
                                     0     0     1     0
                                     0     0     0     1
  • 键盘输入:input 函数
    • 变量=input ('输入一个输入值')
    • 输入一个输入值
    • 变量=input ('输入数据','s')
    • 输入数据 3
      变量 =3
  • 多维数组
    • c(:,:,1) =[1 2 3;4 5 6]
    • c =       1       2       3
            4       5       6
    • c(:,:,2) = 7       8       9
            10       11       12
  • 将多维数组存储在内存中
    •	Eg: a= [1 2 3;4 5 6;7 8 9;10 11 12]
    a =
                   1     2     3
                   4     5     6
    7	 8     9
      10    11    12
  • 子数组
    •	arr= [1 2 3;-2 -3 -4;3 4 5]
                arr =  1     2     3
                         -2    -3    -4
                           3     4     5
    	arr1(1,:)=[1 2 3]
    •	arr1 =     1     2     3
  • End 函数
    •	arr=[1 2 3 4 5 6 7 8];
    •	>> arr(5:end)
              ans =  5     6     7     8
    •	>> arr(1:2,[1,4])=[20 21 ;22 23]
              arr =
    20	   2     3    21     5     6     7     8
        22     0     0    23     0     0     0     0
    
    •	>> arr=[1 2 3 4 ;5 6 7 8;9 10 11 12];
    •	>> arr(1:2,1:2)=1
              arr =
         1     1     3     4
         1     1     7     8
         9    10    11    12
  • 预定义特定值
    • pi:它包含最多 15 位有效数字的值
    • inf:无穷大
    • nan:非数字
    • clock:当前日期和时间,格式为 6 个元素向量,包含
      年、月、日和秒
    • date:当前日期,以字符串格式表示,例如:2019 年 1 月 24 日
    • eps:Esiton 即两个数字之间的最小差值
    • ans:用于存储表达式的结果
  • 显示输出数据
    • Disp 函数:它接受一个参数数组并显示数组在命令中的值
           window
           str=['the value of pi='num2str(pi)];
           disp(str);
  • 使用 fprintf 函数的格式化输出函数
    • 一起显示一个或多个值以及相关文本,并让程序员控制显示值的显示方式
    • 语法:fprintf(格式,数据);
    • 例如:fprintf('pi 的值为 %f\n',pi);
      fprintf('pi 的值为 %d\n',pi);
      fprintf('pi 的值为 %e\n',pi);
  • 标量运算
    •	E.g.: =2^ ((8+2)/5)
             =26(10/5)
             =2^2
             =4
  • 数组操作
             z=1             
        >> z
             z =1     2
                  3     4
    
    >> y=-1
             y = -1
    
         >> y
              y =-1     3
                   -2      0
    
                      >> y+z
    ans =
         0     5
         1     4
  • 基于线性代数的矩阵运算
操作Matlab 形式注释
Array
加法
a+b数组和矩阵加法相同
数组减法a-b数组和矩阵减法相同
数组乘法a.*b数组乘法,a 和 b 的逐元素乘法
矩阵乘法a*b对于矩阵乘法,矩阵 a 中的列数 = 矩阵 b 的列数
数组右除法a./ba 和 b 的逐元素除法
数组左除法a.\ba 和 b 的逐元素除法,在编号中
矩阵右除法a/ba* inv(b),其中 inv 代表逆
矩阵左除法a\binv(a)*b
数组指数a.^ba 和 b 的逐元素指数,即 a( i , j) ^ b( i , j)