MATLAB - 结束函数



“end”关键字用作 MATLAB 中语句的终止符,例如“for”、“while”、“switch”、“try”、“if”和“parfor”结构。如果没有“end”语句,这些结构将保持不完整,等待进一步输入。每个“end”都与其最近的前一个未匹配的“for”、“while”、“switch”、“try”、“if”或“parfor”语句配对,以确保代码闭包和结构完整性。

此外,“end”关键字在各种情况下也扩展到函数。它在增强代码可读性和确保一致的编码实践方面发挥着关键作用。“end”的必要性出现在特定场景中:

函数文件 - 当 MATLAB 文件包含多个函数时,如果其中一个函数以 end 结尾,则该文件中每个函数都必须以 end 结尾。这确保了文件中清晰一致的结构。

嵌套函数 - 如果文件包含一个或多个嵌套函数的函数,则文件中的每个函数都必须以 end 结尾。此做法维护了函数的层次结构,并使代码更井井有条。

包含局部函数的脚本 - 对于包含一个或多个局部函数的 MATLAB 脚本,重要的是每个函数都必须以 end 结尾。此做法确保脚本的局部函数被正确封装和结构化,以便更好地维护代码。

以下是常用 end 的不同类型的函数示例和解释:

基本 Matlab 函数中的 End 关键字

在基本 MATLAB 函数中,使用 end 来标记函数块的结尾。

function result = myFunction(input)
   % Function code here
   result = input * 2;
end % End of the function

此处,end 表示函数块的终止,用于关闭函数定义。

Matlab 中嵌套函数中的 End 关键字

您可以在其他函数中定义函数。在这种情况下,使用 end 来表示内部函数的结尾。

function result = outerFunction(input)
    % Function code here
    result = innerFunction(input);
    
    function resultInner = innerFunction(innerInput)
        % Inner function code here
        resultInner = innerInput + 1;
    end % End of the inner function
end % End of the outer function

在此示例中,end 用于表示内部和外部函数的结尾。

Matlab 中局部函数或子函数中的 End 关键字

局部函数或子函数对于将复杂代码分解成更小、更易于管理的组件特别有用。这是一个父函数中局部函数的示例:

function result = myParentFunction(input)
   % Main function code here
   intermediateResult = myLocalFunction(input);
   result = intermediateResult * 2;
   
   % Local function definition
   function localResult = myLocalFunction(localInput)
      % Local function code here
      localResult = localInput + 1;
   end % End of the local function
end % End of the parent function

在此示例中:

  • myParentFunction 是父函数。
  • myLocalFunction 是在父函数内定义的局部函数。

end 关键字用于表示父函数和局部函数的结尾。

使用 End 终止 if 语句和 for 循环

end 关键字可以用于 if 语句和 for 循环中,如下所示:

a = [0 0 4 4 0 0 0 4 0];
for k = 1:length(a)
   if a(k) == 0
      a(k) = 2;
   end
end

a(k) = 2; 后面的 "end" 表示当条件 a(k) == 0 为真时要执行的代码块的结论。它表示 if 语句中应执行的代码段的结尾。

for 循环中的 end 关键字表示 for 循环代码段的结尾。

使用以下代码检查输出:

使用 End 终止 Switch 块

以下示例显示了如何使用 end 关键字来终止 switch 块

age = 15;

switch choice
   case 1
      disp('Age: 15')
   case 20
      disp('Age: 20')
   otherwise
      disp('Age not defined')
end

使用 End 关键字访问向量的元素

让我们首先创建一个向量,如下所示:

A = [1:20]

执行后的输出为:

>> A = [1:20]

A =

 Columns 1 through 16:

    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16

 Columns 17 through 20:

   17   18   19   20

如果您想访问从第 10 个元素到最后一个元素,可以使用 end 关键字,如下所示:

B = A(10:end)

在 matlab 命令窗口中执行上述代码的输出如下:

>> B = A(10:end)

B =

   10    11    12    13    14    15    16    17    18    19    20

使用 End 关键字访问矩阵的最后一行

让我们首先创建一个矩阵,如下所示

A = magic(3)

在 matlab 命令窗口中执行后的矩阵如下:

>> A = magic(3)

A =	

     8     1     6
     3     5     7
     4     9     2

现在要获取最后一行,我们可以使用 end 关键字,如下所示:

B = A(end,:)

相同的 B 的输出如下:

>> B = A(end,:)

B =

   4     9     2

使用 End 关键字访问矩阵的最后一列

我们将使用以下矩阵 A

A =

     8     1     6
     3     5     7
     4     9     2

要获取最后一列,我们可以使用 end 关键字,如下所示:

B = A(:,end)

在 matlab 命令窗口中执行相同的代码,输出为:

>> B = A(:, end)

B =

   6
   7
   2
广告