郭彦甫MATLAB(二)结构化程式和与自定义函数

文章目录

  • 一、在MATLAB中如何撰写程序
  1. MATLAB脚本
  2. 建立脚本文件
  3. 常用功能
  4. 脚本流 控制流 关系(逻辑运算符)
  5. 具体示例
  6. 脚本和函数
  7. MATLAB内置函数的内容
  8. 用户自定义函数   多个输入和输出的函数
  9. 函数的默认变量
  10. 函数处理
  • 二、课后习题

一、在MATLAB中如何撰写程序

1.MATLAB脚本

  • 包含一系列MATLAB命令的文件
  • 类似于C/C++程序
  • 脚本需要保存到<文件>.m file 中才能运行它们

2.建立脚本文件

在这里插入图片描述
命名的时候,不能以数字开头命名字母的大小写之间是有差别的
在这里插入图片描述
运行结果:
在这里插入图片描述

3.常用功能

断点、分节、注释、智能缩进
在这里插入图片描述
智能缩进:“Ctrl+l” 键

4.脚本流:

通常,脚本从第一行运行到最后一行,运用结构化编程技术(子程序、循环、条件等),使程序看起来整洁。
  控制流:

if,elseif,else如果条件为真,则执行语句
for执行指定次数的语句
switch,case,otherwise执行几组语句中的一组
try,catch执行语句并捕获产生的错误
while当条件为真时,重复执行语句
break终止执行for或while循环
continue将控制传递给for或while循环的下一次迭代
end终止代码块,或指示最后一个数组索引
pause暂时停止执行
return将控制权返回给调用函数

  关系(逻辑)运算符:

运算符                                             说明
  <小于
  <=小于或等于
  >大于
  >=大于或等于
  ==等于
  ~=不等于
  &&
  ||

5.具体示例:

  • if  elseif  else

 rem(a,2):求整除a/2的余数

 disp:用来显示字符串和计算结果

  • switch

依据switch后面的数值,找case,执行对应的statement

  • while

 当while后的条件成立时,则执行下面的语句,若不成立,则会跳到end

prod:求乘函数

(1:n):[1,2,3,..........,n]

prod(1:n):(1*2*3*.......*n)=n!

1e100:1×10^100

  • for

红色字体部分是可以根据题目要求增加增量,该程序可以使n为偶数列或奇数列

在做数值运算的时候,注意常常需要把旧的变量值给删掉,不然就算改写新的程序,数值依旧不会变

  • 为变量预分配空间

哪个方法更快:

B中有预分配矩阵A=zeros(2000,2000)就不用总是在计算大小

tic:计算时间开始        

toc:计算时间结束 

  •  break

跟while有关 

小技巧:

close:关闭掉所画的图形

.........: 可换行

6.脚本VS函数

                        脚本                         函数

                  无输入参数

                    有输入参数
                  无输出参数                    有输出参数
     对全局工作区中的数据进行操作     对本地工作区中的数据进行操作

7.MATLAB内置函数的内容

8.用户自定义函数    多个输入和输出函数

对于给定的初始位移X,初始速度V,下落持续时间t的自由落体位移:

 需要在命令行窗口呼叫

具有多个输入和输出的函数 

质点加速度和作用在其上的力如下:

9.函数的默认变量 

inputname函数输入的变量名称
mfilename当前正在运行的代码的文件名
nargin函数输入参数名称
nargout函数输出参数名称
varargin可变长度输入参数列表
varargout可变长度输出参数列表

10.函数处理

@(x)相当于一个自变量

@后面是自变量的字母,如果输入f(2)就是令x=2求函数值 

函数名=@(自变量)函数关系,调用时用函数名(自变量)

二、课后习题


 



 1.把矩阵A中的元素复制到矩阵B中

 2.如果矩阵A中的对应项为负,则更改矩阵B中的值



写一个函数,要求以华氏度为单位的温度,以摄氏度为单位计算等效温度,以摄氏度显示转换后的温度,该函数一直运行,直到没有提供要转换的数字为止

input isempty break disp num2str

num2str:把数值转化为字符串

isempty :判断数列是否为空,isempty(F) 若F为空返回1,F非空返回0

function F2C

while (1)

      F = input('Temperature in F: ');

      if isempty(F)

             break;

      else

      C = (F-32) * 5/9;

      X = num2str(C);

      fprintf('\n')

      disp(X)

      end

      fprintf('\n')

end


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值