完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
第5章 Matlab简易使用之常用编程语句
本期教程主要是讲解Matlab的一些编程语句。 5.1 初学者重要提示 学习本章节前,务必优先学习第4章。 Matlab的编程语句类似C,只是比C更加宽松。 5.2 Matlab控制流 5.2.1 Matlab条件控制if,else,switch 下面我们通过三个简单的例子来说明这三个函数的使用。 If和else语句的使用 a = randi(100, 1); if a 《 30 disp(‘small’) elseif a 《 80 disp(‘medium’) else disp(‘large’) end 命令窗口输出结果如下: switch语句的使用 [dayNum, dayString] = weekday(date, ‘long’, ‘en_US’); switch dayString case ‘Monday’ disp(‘Start of the work week’) case ‘Tuesday’ disp(‘Day 2’) case ‘Wednesday’ disp(‘Day 3’) case ‘Thursday’ disp(‘Day 4’) case ‘Friday’ disp(‘Last day of the work week’) otherwise disp(‘Weekend!’) end 命令窗口输出结果如下: 在这里顺便介绍一个类似于C语言中scanf的函数input并配合上面的if else实现一个小功能: yourNumber = input(‘Enter a number: ’); if yourNumber 《 0 disp(‘Negative’) elseif yourNumber 》 0 disp(‘Positive’) else disp(‘Zero’) end 运行上面代码后,我们在命令窗口输入数字22,输出结果如下: 5.2.2 Matlab循环控制for, while, continue, break 这里我们也通过几个简单的例子来说明这几个函数的使用。 for语句的使用 for n = 3:32 r(n) = rank(magic(n)); end r 命令窗口输出结果如下: while语句的使用 a = 0; fa = -Inf; b = 3; fb = Inf; while b-a 》 eps*b x = (a+b)/2; fx = x^3-2*x-5; if sign(fx) == sign(fa) a = x; fa = fx; else b = x; fb = fx; end end x 命令窗口输出结果如下: continue语句的使用 fid = fopen(‘magic.m’,‘r’); count = 0; while ~feof(fid) line = fgetl(fid); if isempty(line) || strncmp(line,‘%’,1) || ~ischar(line) continue end count = count + 1; end fprintf(‘%d linesn’,count); fclose(fid); 命令窗口的输出结果如下: break语句的使用 a = 0; fa = -Inf; b = 3; fb = Inf; while b-a 》 eps*b x = (a+b)/2; fx = x^3-2*x-5; if fx == 0 break elseif sign(fx) == sign(fa) a = x; fa = fx; else b = x; fb = fx; end end x 命令窗口输出结果如下: 5.2.3 Matlab矢量化 对于matlab而言,要想加快算法的执行速度可以通过算法的矢量化来实现,比如要实现如下的功能。 x = .01; for k = 1:1001 y(k) = log10(x); x = x + .01; end 但是我们矢量化后,将更加方便和容易实现。 x = .01:.01:10; y = log10(x); 但是有一点大家要特别注意,不是什么程序矢量化都能加快执行速度,要视具体情况而定。 5.3 Matlab中help功能的使用 关于matlab入门方面的东西就跟大家将这么多,基本上有这些基础就够了,后面遇到什么问题在网上查找资料即可。也可以查看matlab本身的help帮助文档。 如果有不懂的函数,可以直接在命令窗口输入help 再加上函数即可,比如输入: 5.4 总结 Matlab方面的教程就跟大家讲这么多,后面需要那方面知识的时候,我们再具体的补充。学会这些基本的操作就可以入门了。永远要记住,Matlab只是个工具,我们只需把它当个工具来用,没有必要花大量的时间去研究,入门后用什么学什么即可。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1932浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
725浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
564浏览 3评论
591浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
549浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 01:13 , Processed in 0.771567 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号