• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【STM32F407的DSP教程】第5章 Matlab简易使用之常用编程语句

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547

第5章   Matlab简易使用之常用编程语句

本期教程主要是讲解Matlab的一些编程语句。

5.1 初学者重要提示

5.2 Matlab控制流

5.3 Matlab中help功能的使用

5.4 总结

 

 

5.1   初学者重要提示

  1.   学习本章节前,务必优先学习第4章。
  2.   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 lines\n\',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帮助文档。点击这里就可以查看,或者直接访问地址:

https://ww2.mathworks.cn/help/

 

如果有不懂的函数,可以直接在命令窗口输入help 再加上函数即可,比如输入:

 

5.4   总结

Matlab方面的教程就跟大家讲这么多,后面需要那方面知识的时候,我们再具体的补充。学会这些基本的操作就可以入门了。永远要记住,Matlab只是个工具,我们只需把它当个工具来用,没有必要花大量的时间去研究,入门后用什么学什么即可。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi-采用第三方控件TMS、SPComm开发串口调试助手发布时间:2022-07-18
下一篇:
DelphiDll动态调用例子(3)-仔细看一下发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap