文章目录
- 一、在MATLAB中如何撰写程序
- MATLAB脚本
- 建立脚本文件
- 常用功能
- 脚本流 控制流 关系(逻辑运算符)
- 具体示例
- 脚本和函数
- MATLAB内置函数的内容
- 用户自定义函数 多个输入和输出的函数
- 函数的默认变量
- 函数处理
- 二、课后习题
一、在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