Matlab中end语句

目录

语法

说明

示例

终止条件语句和 for 循环

终止 switch 块

声明函数

访问向量的元素

访问矩阵的最后一行


        终止代码块或指示最大数组索引。

语法

end

提示

  • 类可以重载end函数以实现特殊的行为。

  • 如果数组 X 已存在,可以使用 end 来扩展数组。例如,X(end+1) = 5 将 X 的长度增加 1,并在 X 的末尾添加一个新元素。

  • 虽然 end 有时在函数文件中是可选的,但使用它可以提高代码可读性。

说明

end 是终止for、while、switch、try、if和parfor语句的关键字。若没有 end 语句,则 for、while、switch、try、if 和 parfor 会等待进一步输入。end 的每个实例与先前最近的未成对的 for、while、switch、try、if 或 parfor 语句配对使用。

end 还终止声明的函数。虽然它有时是可选的,但使用 end 可提高代码可读性。在下列情况下,需要使用 end:

  • 如果文件包含多个函数,并且其中一个函数用 end 终止,则文件中的每个函数都必须用 end 终止。

  • 如果文件包含具有一个或多个嵌套函数的函数,则该文件中的每个函数都必须用 end 终止。

  • 如果脚本包含一个或多个局部函数,则文件中的每个函数都必须用 end 终止。

end 也表示数组的最后一个索引。例如,X(end) 是 X 的最后一个元素,X(3:end) 选择 X 的第三个到最后一个元素。

示例

终止条件语句和 for 循环

        使用 end 关闭 if 语句和 for 循环。end 的第一个实例与 if 语句配对,第二个实例与 for 语句配对。

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

终止 switch 块

        使用 end 终止 switch 块。

choice = 1;

switch choice
    case 1
        disp('Vote for no. 1')
    case 2
        disp('Vote for no. 2')
    otherwise
        disp('Abstain')
end
Vote for no. 1

声明函数

        在名为 average.m 的文件中声明一个函数,并将其保存在当前文件夹中。使用 end 终止该函数。

function ave = average(x)
    ave = sum(x(:))/numel(x); 
end

        该函数接受一个输入数组,计算其元素的平均值,并返回标量。从命令行调用该函数。

z = 1:99;
ave = average(z)

ave =

    50

访问向量的元素

        创建向量 X

X = 1:15;

        访问 X 的第五个至最后一个元素。

X(5:end)

ans = 1×11

     5     6     7     8     9    10    11    12    13    14    15

        访问 X 的具有奇数索引的元素。

X(1:2:end)

ans = 1×8

     1     3     5     7     9    11    13    15

访问矩阵的最后一行

        使用 end 访问矩阵 A 的最后一行。

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

B = A(end,:)
B = 1×3

     4     9     2

### Matlab 中 `if` 和 `end` 语句的用法 在Matlab中,条件控制结构通过`if`关键字实现,并由对应的`end`来结束整个判断逻辑[^1]。当满足特定条件下执行一段代码;如果不满足,则可以选择跳过这段代码或执行其他分支。 #### 基本形式 最简单的`if-end`结构如下所示: ```matlab value = 10; if value > 5 disp('Value is greater than five'); end ``` 这里定义了一个变量`value`并赋予其数值10,在随后的`if`语句里测试这个值是否大于5。如果是这样,那么就显示一条消息说明情况确实如此;否则什么也不做直接到达`end`处继续程序流程。 #### 多重条件 可以利用额外的关键字如`elseif`以及`else`扩展上述基本模式以处理更复杂的情况: ```matlab grade = 87; if grade >= 90 letterGrade = 'A'; elseif grade >= 80 && grade < 90 letterGrade = 'B'; elseif grade >= 70 && grade < 80 letterGrade = 'C'; else letterGrade = 'F'; end disp(['The student got a ', num2str(grade), '% which corresponds to an "', letterGrade, '"']); ``` 此例子展示了如何根据不同分数范围分配字母等级。如果成绩落在某个区间内就会设置相应的字符给`letterGrade`变量,最后打印出完整的评分信息。 #### 单行表达式 对于非常简单的情形也可以采用紧凑的一行写法: ```matlab result = if condition true_expression else false_expression end; % 这种方式不推荐使用 % 更建议分开多行书写以便阅读理解 ``` 不过需要注意的是这种单行表示方法虽然简洁但是可读性和维护性较差,因此通常还是应该把各个部分清晰地区分出来分别放在不同的行上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值