MATLAB基础知识【2】

47 阅读3分钟

switch语句

grade = 'B';
   switch(grade)
   case 'A' 
      fprintf('Excellent!\n' );
   case 'B' 
      fprintf('Well done\n' );
   case 'C' 
      fprintf('Well done\n' );
   case 'D'
      fprintf('You passed\n' );
   case 'F' 
      fprintf('Better try again\n' );
   otherwise
      fprintf('Invalid grade\n' );
   end

嵌套Switch语句

a = 100;
b = 200;
switch(a) 
   case 100 
   %判断变量a的值。如果a等于100,则执行相应的代码块
      fprintf('This is part of outer switch %d\n', a );
      switch(b) 
         case 200
            fprintf('This is part of inner switch %d\n', a );
      end
end

fprintf('Exact value of a is : %d\n', a );
fprintf('Exact value of b is : %d\n', b );

从向量中选择一系列元素

例如,让我们创建一个包含9个元素的行向量rv,然后我们将通过编写来引用元素3到7,rv(3:7)并创建一个名为sub_rv的新向量。

rv = [1 2 3 4 5 6 7 8 9];
sub_rv = rv(3:7)

MATLAB将执行上述语句并返回以下结果-

sub_rv =

   3   4   5   6   7

引用矩阵的元素

为了引用矩阵mx的第m行第n列中的元素,我们写- mx(m, n);

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(2,5)

引用在第m的所有元素个列,我们A型(:,米)。

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4)
%提取矩阵a的第4列

输出为

v =
      4
      5
      6
      7

也可以选择

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
%提取矩阵a的第2列和第3列
ans =
      2     3
      3     4
      4     5
      5     6

创建一个子矩阵

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
sa = a(2:3,2:4)
%提取一个2行3列的子矩阵
%2:3表示选取第2行到第3行
%2:4表示选取第2列到第4列

删除矩阵中的行或列

通过为该行或列分配一组空的方括号[]来删除矩阵的整个行或列

%删除-的第四行
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a( 4 , : ) = []
a =
      1     2     3     4     5
      2     3     4     5     6
      3     4     5     6     7
%删除-的第五列
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(: , 5)=[]
a =
      1     2     3     4
      2     3     4     5
      3     4     5     6
      4     5     6     7
a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)
%复制该矩阵的第二行和第三行两次以创建4×3矩阵
new_mat =
      4     5     6
      7     8     9
      4     5     6
      7     8     9

单元数组

c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
c = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
   [1,3] = Green
   [2,3] =  3
   [1,4] = Yellow
   [2,4] =  4
   [1,5] = White
   [2,5] =  5
}
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)
%1:2表示选取第1行到第2行,1:2表示选取第1列到第2列
ans = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
}

也可以使用大括号索引

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
ans = Blue
ans = Green
ans = Yellow

冒号表示法

A = [1 2 3 4; 4 5 6 7; 7 8 9 10]
A(:,2)      %A的第二列
A(:,2:3)    %A的第二列和第三列
A(2:3,2:3)  %第二行和第三行以及第二列和第三列
A =
      1     2     3     4
      4     5     6     7
      7     8     9    10

ans =
      2
      5
      8

ans =
      2     3
      5     6
      8     9

ans =
      5     6
      8     9