MATLAB学习笔记(七)

逻辑函数和控制结构

  • 理解MATLAB中的关系运算符和逻辑运算符
  • 能够正确的使用函数find
  • 理解和正确使用if/else结构
  • 理解和使用 switch/case结构
  • 理解和使用for循环和while循环

1.关系运算符和逻辑运算符

1)标量之间比较

>> x = 5;
>> y = 1;
>> x < y
ans =
     0
>> 

2)矩阵之间比较

>> x = 1:5;
>> y = x - 4;
>> x < y
ans =
     0     0     0     0     0

3)逻辑运算符
包括 &(与) ~(非) |(或) xor(亦或)

>> x = 1:5;
>> y = [-2,0,2,4,6];
>> z = [8,8,8,8,8];
>> z > x & z > y
ans =
     1     1     1     1     1

注意运算符的优先级。也可以加括号表示清楚

>> (z > x) & (z > y)
ans =
     1     1     1     1     1

2.流程图和伪码

伪码是以文字的形式对程序算法进行描述,在编写简单程序时,最好用伪码的方法。编写复杂程序时,最好用流程图和伪码进行程序设计,将伪码作为程序的注释信息。
注意流程图的标准符号。

3.逻辑函数 find

函数find用于查找矩阵中符合某种条件的元素。

>> height = [63,67,65,72,69,78,75];
>> accept = find(height > 65)
accept =
     2     4     5     6     7

注意输出的是所求元素在矩阵中的位置标号
如果需要查看该身高的数值,可以用元素序号调出该元素

>> height(accept)
ans =
    67    72    69    78    75

还可以使用嵌套命令:

>> height(find(height >= 66))
ans =
    67    72    69    78    75 

为了增加输出结果的可读性,使用函数disp和fprintf显示输出结果

>> fprintf('Candidate # %4.0f is %4.0f inches tall \n',[accept;height(accept)])
Candidate #    2 is   67 inches tall 
Candidate #    4 is   72 inches tall 
Candidate #    5 is   69 inches tall 
Candidate #    6 is   78 inches tall 
Candidate #    7 is   75 inches tall 

复杂查找
定义矩阵,第一列表示身高,第二列表示年龄。查找矩阵中第一列数值大于66且第二列数值大于18小于35的元素序号。

>> applications = [63,18;67,19;65,18;72,20;69,36;78,34;75,12]
applications =
    63    18
    67    19
    65    18
    72    20
    69    36
    78    34
    75    12
>> pass = find(applications(:,1) >= 66 & applications(:,2) >= 18 & applications(:,2) < 35)
pass =
     2
     4
     6

将序号,身高,年龄合并成为一个矩阵:

>> result = [pass,applications(pass,1),applications(pass,2)]
result =
     2    67    19
     4    72    20
     6    78    34

4.选择结构

1)if 选择结构
很简单没什么可说的,类似Python和C
结构是 if—-elseif—-else——end.
一般来说,if语句适用于标量,而find适用于矩阵。

2)switch/case结构
switch case结构根据一个给定参数的不同取值来执行不同的命令。其结构为:

switch
case option1
    code code code
case option2
   code code code
case option3
   code code code
otherwise
   code code code
end

3) menu结构
新建脚本输入

city = menu('请选择一个城市','上海','北京','深圳')
switch city
    case 1
        disp('上海')
    case 2
        disp('北京')
    case 3
        disp('深圳')
end

这里写图片描述
选择北京,则会出现

>> menu2
city =
     2
北京

5.循环结构

1)for 循环

>> for k = [1,2,3]
       k
   end

k =
     1
k =
     2
k =
     3
>> for k = 1:3
     a = 5 ^ k
   end
a =
     5
a =
    25
a =
   125
>> 

**例**for语句和if语句配合使用,统计90分以上的人数

scores = [76,45,98,97];
count = 0;
for k = 1:length(scores)
    if scores(k) > 90
        count = count + 1;
    end
end
disp(count)

如果索引矩阵是一个二维矩阵,那么每执行循环一次,依次取矩阵中的下一列的值,即在这种情况下索引值是一个列矢量

2)while循环
程序:

k = 0;
while k < 3
    k = k + 1;
    a(k) = 5 ^ k
end

执行结果:

>> Untitled4
a =
     5
a =
     5    25
a =
     5    25   125
>> 

3)break continue
同C语言

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值