MATLAB的使用(二)

一,算法需求

算法五特性
(1)有穷性。有穷性是指算法需在有穷步骤、有穷时间内结束。

(2)确定性。确定性是指每个步骤都有确切的意义,相同的输入有相同的输出。

(3)有效性。有效性是指可通过已实现的运算在有限次完成,或叫可行性。

(4)输入。

(5)输出。

二,分支语句

1,分支结构

·分支语句的作用:判断当前的情况来决定下一步的工作

·一般情形:MATLAB提供了if-else-end结构和switch-case-otherwise结构来实现分支功能。

·特殊情形:try-catch结构是分支选择结构的一种特殊形式。

如果程序的bugs 在try语句块中,那么程序将会执行catch语句块。

try-catch语句可以用于捕捉错误

问:为什么try-catch应用较少?

在当前Matlab 的脚本高debuq 运行模式下,采用dbstopiferror 等语句更加简洁,当针对特殊异常捕获时才会使用try-catch。

2,if-else-end

3,switch-case-otherwise

注意:switch语句判断的时delta值的本身,而不是判断语句

三,循环语句

循环语句的作用:对重复性工作进行执行,并提供起始和结束的标志·

MATLAB提供了for结构和while结构来实现循环功能。

-for语句循环的特点是判断条件通常是对循环次数的判断,一般循环次数预先设定好;

-while语句直接将逻辑判断语句作为控制条件

原则上while的适用范围更广一些。但在一般操作中for循环的应用更加广泛。

1,for结构

index在values中按顺序进行取值,value一般是行向量形式,一般采用冒号表达式进行生成

2,while结构

3,组合控制

除了在判断中对代码下一步进行控制,还具有三种特殊控制符

break 跳出循环体

continue 跳过本次循环

return 跳出函数体 在matlab的一般使用中较少应用return

4,循环体与矩阵

Matlab具有非常优异的矩阵运算优势,能用矩阵运算则用矩阵

1.尽量避免对矩阵元素进行循环遍历操作

2.循环体中的参量应提前预留空间,避免在循环中新建空间

5,多线程循环

*parfor中不能存在二级循环结构

*parfor由于是并行体系,其不同循环中数据不能冲突

*parfor中不能使用break/continue

复制代码
function imgfin=parfor img(T,S,defocus tM,CC)

   imgfin=zeros(M,2*T);

    parfor ji=l:M

           imgfin(jj,:)=Quick Defocus img deta(T,0.5,1,2*T,T,S,defocus t,cc);

     end

end

第一次使用parfor时需要启动线程,需要消耗一定时间:

在for循环占耗时主体的函数中,可设计parfor来加速

四,自定义函数

尽管完全在MATLAB命令行中进行许多有用的计算,但迟早需要编写M文件它们是其他编程语言中

程序、函数、子程序和过程的等价物。将一系列命令收集到一个M文件中会带来很多可能性,包括

·通过编辑文件而不是重新键入一长串命令来实现算法,

·对数值实验进行永久记录,

·建立日后可重复使用的公用设施,

·与他人交换M文件。

M-File的两种主要形式

·脚本:可直接运行、编辑、调试的一组代码

·函数:进行特定输入/输出的一组代码

相关推荐
studyer_domi4 小时前
Matlab 调制信号和fft变换
开发语言·计算机视觉·matlab
studyer_domi8 小时前
Matlab 考虑电机激励力的整车垂向七自由度的被动悬架和LQR控制
数学建模·matlab·汽车
pk_xz12345610 小时前
MATLAB编写的机械臂控制仿真程序,它主要实现了对一个二连杆机械臂的运动控制仿真,比较了PID控制和非线性模型预测控制两种方法在机械臂轨迹跟踪任务中的性能
开发语言·matlab
studyer_domi13 小时前
Matlab 汽车ABS的PID控制
数学建模·matlab·汽车
studyer_domi16 小时前
Matlab 直流和交流电机PI控制和GUI界面
开发语言·matlab
studyer_domi17 小时前
Matlab 三维时频图
开发语言·人工智能·matlab
随风飘摇的土木狗1 天前
【MATLAB第114期】基于MATLAB的SHAP可解释神经网络分类模型(敏感性分析方法)
神经网络·matlab·分类·全局敏感性分析·gsa·敏感性分析·shap
小宁学技术1 天前
MATLAB在工程领域的实际应用案例
开发语言·matlab·matlab实际应用案例·matlab应用案例·matlab 实际应用案例
zew10409945882 天前
MATLAB实现电池剩余放电时间预测【电子信息专业】
开发语言·matlab·课设·电池剩余放电时间预测
可编程芯片开发3 天前
基于时空相关性的风电功率预测模型matlab建模与仿真
matlab·时空相关性·风电功率预测模型