matlab程序架构,MATLAB的编程结构

《续》

MATLAB控制流

if-else-end    switch-case  try-catch   for循环   while循环

基础输入、输出

input调用格式:

c508326be0e5609e46868a6da9ecf1ae.png

bdf0246eae31a2b1ea50a3acb0d8cd0a.pngs表示可输入字符串

disp(A)直接输出A的内容;fprintf直接输出内容。

循环结构

for已知循环次数;while未循环训次数;

数组控制循环:若果数组的列数作为循环次数,调用格式:for k=A(:i) 等价于k=A,将数组的列向量赋值给k,其中i是循环次数。

28e483a26b5fc539fe10882bb24d5987.png

一个简单的例题:求10000以内的奇数和与偶数和。(看上去很简单,但是脑袋里面没有见过太多的例题,还是一头雾水)正确的程序如下:

ab2adc8bcbcb45170a2b38ddaa5b01ef.png

if语句的使用(凡事要多练习才能记住公式,才能灵活运用里面的语句)

利用if语句创建数组。

90ace3e94abcfb6a7d3281525e2da634.png                 

5b46c36b760e012b39ff77fdab31eda4.png

上图有一个判断是否为闰年的,具体判断的方法不对但是,基本程序是对的。

到此,进度已经很慢了,基本上看完简单基础,来到了一般基础了。不过还是要继续......

switch选择语句的应用。

c15f3a6665c5fec4b2797f2036c3e5d1.png

这个程序一边看书,以便自己写,都改了好多次!!!!

小总结一下:

首先利用for循环分等级,在将5个人的名字存在元胞组内,以及每个人的分数。

rank=cell(1,5)建立一个空的能储存5个等级的元胞组。

之后简历结构体:struct其中包含三个域,每个域相当于一个元胞组里面可以存5个数据或者字符串。

复习一下结构体。调用格式:S=struct('A',a,'B',b,......);其中A。B是每个域的域名,后面a、b则是对应的域中的内容,可称为域值。

错误控制结构 try-catch-end

在执行程序的时候,首先执行try和catch之间的如果没有错误就跳过catch-end之间的程序执行end之后的程序,如果try-catch之间的程序有误,执行catch-end之间的程序后在执行end之后的程序。(第一次接触这个结构,所以参照课本用法写的详细了一点)

66c5d9e5090f27b24e200b0300017101.png

e57e5b71162272de98c25f9cd8e4139a.png得到错误的原因,将X改为n后得到结果为:

f7376aa5035ecb617d7f058a1337b1cb.png

函数lasterr,程序出错的时候可以获得出错的原因。

程序流的控制

break 强制跳出循环、终止命令。直接执行end之后的语句。常与if连用。

return用于终止当前命令的执行。

continue在for或者while循环中直接跳到下一个循环执行。

(单叙述,太抽象还要结合具体的例题分析)

32988992834ea87bff62d18cf4673d2e.png

总结:

程序中有几点:

1.关于rem函数mod函数,对于小白的我来说是第一次接触,搜了一下。

rem大多是和mod相比较来理解的。mod整除取余。比如mod(7,3)结果=1。

rem(a,b)如果a、b的符号相同即同正同负那么就过和mod相同,但是若符号不同那么就有区别了:

rem(a,b)返回的值是a-n.*b,当b不等于0的时候n=fix(x./b) fix是向最近的整数取整。

mod(a,b)返回的值是a-n.*b,不等于0的时候n=floor(x./b) floor是向负无穷取整。

例:rem(7,-3) fix向最近的整数取整,n取-2故返回的值是7-6=1

mod(7,-3)floor向负无穷取整,所以n=-3,故返回的值是7-9=-2

附加(网友的解释):使用rem主要是因为它比mod快得多(因为MOD要兼容所有类型数据,而REM只对数值标量有效)

2.程序中的break,当执行break的时候是跳出的哪一个循环?网上以及书上说跳出最内层的循环。但是本程序中如果跳出后因该执行I=i+1了结果结汇错了。?

自我解释:突然明白的,if中的end是一个判断语句不是循环,所以说当执行到break的时候直接跳出的是while的循环,即接着执行输出语句的命令。

324b5650849f1a331b21bcb1d2d9c1aa.png

d886cfdc52785493ef80bdcead449678.png其中A=rand(3,4)<0.5是A中的每一个元素与0.5比较大小如果小于0.5那么赋值为1如果小于不成立的话赋值为0。

96b45601477dcf60f4a5e4500b20a7d1.png

276290939eca3beec6c095c81fdb3da5.png

行改成列之后有少许的变动,可以对比一下。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值