接着Matlab 基础入门(2), 这次我们介绍流程控制-Flow Control。
关系运算符
< | 判断小于 |
> | 判断大于 |
== | 判断等于 |
<= | 判断小于等于 |
>= | 判断大于等于 |
~= | 判断不等于 |
isequal | 判断array等于 |
应用举例
以‘判断小于’为例:
先在Matlab中定义一个测试向量
>> my_Vector = -2:7my_Vector = -2 -1 0 1 2 3 4 5 6 7
注:关于向量定义声明,在Matlab基础入门(2)里详细讲过。
Matlab基础入门(2)-变量
良皮儿,公众号:汽车软件开发工程师Matlab 基础入门(2)- 变量
找到 my_Vector 中所有小于0的地址(index)
>> idx = my_Vector < 0idx = 1×10 logical array 1 1 0 0 0 0 0 0 0 0
注:返回值为逻辑1表示该位置上的值满足判断条件(小于0),反之则不满足判断条件并返回0
输出小于0的值
>> my_Vector(idx)ans = -2 -1
上面两个步骤可以合二为一, 找到测试向量中小于0的值
>> my_Vector(my_Vector<0)ans = -2 -1
借助find指令找到小于0的值
>> my_Vector(find(my_Vector<0))ans = -2 -1
2. 循环语句
if-else 语句
test = 5;%if commandif test < 2 disp('value is smaller')elseif test >= 5 disp('value is bigger'end
在if-else 语句中, else条件不是必须的,但是end关键字是必须的。每一个if关键字一定要有一个与之对应的end关键字。if-else 是可以嵌套使用的。
switch-case 语句
test = 5;%switch commandswitch test case 2 result = 2; case {3 4 5} result = 5;enddisp(result)
for 循环
for i= 1:10 disp(i^2)end
for i = 1:2:10 disp(i^2)end
my_Vector = -2:7;%把my_Vector向量中小于0的值改写为0for i= 1:length(my_Vector) if my_Vector(i) <0 my_Vector(i) = 0 endend
上面这段循环可以简化为:
my_Vector = -2:7;my_Vector(my_Vector<0) = 0
while 循环
n = 1;while n < 10 n = n + 1; m = n^2; disp(m); if m < 5 break; endend
while语句应避免死循环
Matlab基础入门(3) 完。