许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab编程建议总结:高效代码编写规范

Matlab编程建议总结:高效代码编写规范

阅读数 20
点赞 0
article_banner

参考《MATLAB程序设计——重新定义科学计算工具学习方法》

  • 1.文件夹建议

建议一:将功能模块和公共模块分开


由此,项目的工作目录比较复杂,在 脚本 中设置工作路径建议使用以下代码:

%define enviroment mfilepath = fileparts(which(mfilename)); addpath(fullfile(mfilepath),"./utils") addpath(fullfile(mfilepath),"./config") addpath(fullfile(mfilepath),"./pipeline") addpath(fullfile(mfilepath),"./modules")
  • 2.命名建议

建议二:变量命名首选“小驼峰模式”

小驼峰模式即首字母小写,单词与单词之间直接相连,从第二个单词开始就首字母大写,如:averageNumber,pixelLocation。遇到需要下角标的情况时,也建议使用 结构体  或者元胞矩阵来实现,这样便于后续的检索和循环。

建议三:常量命名采用大写字母和下画线的形式

一般在程序开头定义一些常量,使用全大写字母配下画线命名方法,如RED_NUM,YELLOW_NUM。

建议四:函数文件命名采用“小驼峰命名法”并以动词开头

函数使用小驼峰命名法,并尽量以动词开头,如getLocation.m, plotPicture.m等。因为绝大多数MATLAB内置函数都是全小写命名,这样编程过程中可以一眼分辨函数是内置函数还是自建函数。

建议五:脚本文件命名采用“大驼峰模式”

大驼峰模式即首字母大写,单词与单词之间直接相连,每单词的首字母都是大写,如 Main  .m。用此方法简单区分脚本文件和函数文件。

  • 3.文件建议 3.1脚本和函数

MATLAB源文件称为M文件,M文件又分为脚本文件和函数文件。

建议六:脚本文件作为指令 集合  使用

脚本(script)是一系列指令的集合,类似于批处理文件,运行一个脚本文件(*.m)就相当于依次运行了其中每一条指令。脚本中可以再插入脚本,直接把脚本名作为一条指令即可,MATLAB解析时,会将脚本名替换为脚本中的所有语句再执行,所以脚本的意义就在于将多条指令放在一起,用一个名称来完成调用。

输入 edit  打开编辑器,输入以下代码并保存文件名为ScriptMain.m

%% 主脚本 ScriptMain a = 1; b = 2; ScriptAddAB c

再新建一个脚本,名为ScriptAddAB,代码如下:

%% 脚本ScriptAddAB c = a + b

注意事项:

(1)由于脚本的原理是替换,因此在调用子脚本之前的信息完全将被子脚本所用。

(2)建议将脚本名称的首字母大写。

(3)脚本的本意是可以将重复的代码打包以多次调用,但是脚本的性质决定它不具备良好的封装性,输入、输出变量不灵活;而且子脚本会依赖并修改主脚本的内存空间,往往会产生意想不到的后果,因此除一些不依赖和修改内存空间的代码外,不建议经常使用子脚本的方式,而是尽量使用“函数”。

建议七:函数文件作为功能封装使用

函数(Function)的概念与数学中的函数非常相似,也是有输入变量和输出变量,输入变量和输出变量都可以是多个任意类型的变量。

%%主脚本 ScriptMain a = 1; b = 2; c = functionAdd(a,b)

新建函数文件,代码如下,保存时自动识别函数名称为functionAdd.m。

function output = functionAdd(input1, input2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 将两个输入变量进行相加 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %创建人:Xiejiahuan %日 期:2022.11.14 %修改人: %日 期: %函数输入输入参数说明 % input1: 输入变量 % input2:输入变量 % output:输入变量的相加和 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% output = input1 + input2; end

注意事项:

(1)函数编写要注意其固定格式,因此在新建函数时,可以使用软件主界面中的“新增函数”按钮,这样产生的新建函数本身就拥有正确的格式。

(2)从函数第二行开始,建议使用注释将函数功能以及算法的思路进行较详细的说明。

(3)由于函数不依赖主程序的内存空间,因此在函数中无法直接使用主程序内存空间中的变量,且在函数内部生成的中间结果变量,只要不输出变量,则在退出函数时即被清除,内部变量是函数的局部变量,不会影响主程序内存空间。

(5)函数的命名建议形式上采用“小驼峰命名法”,并建议以动词开头,如getLocation, plotPicture等。

3.2 函数文件注释

建议八:函数文件的注释写在函数第二行开始

function [ 函数输出参数] = 函数名( 函数输入 ) %%%%%%%%%%%%%%%%%%%%%%%%%%%% %此处为函数名,描述函数功能 %%%%%%%%%%%%%%%%%%%%%%%%%%%% %创建人: %日 期: %修改人: %日 期: %函数输入输入参数说明 %%%%%%%%%%%%%%%%%%%%%%%%%%%


3.3脚本文件注释

建议九:脚本文件的注释写在脚本文件第一行开始

%%%%%%%%%%%%%%%%%%%%%%%% %此处脚本名,描述脚本功能 %%%%%%%%%%%%%%%%%%%%%%%% %创建人: %日 期: %修改人: %日 期: %%%%%%%%%%%%%%%%%%%%%%%% a = 1; b = 2; c = a + b;


  • 4.矩阵编程

建议十:使用矩阵编程风格

矩阵编程是MATLAB中的核心特色,相比于常规的C语言代码风格,矩阵编程是一种非常可取的编程风格,具有接近数学语言,取代循环结构,提高计算速度的优点。

以下给出四个矩阵编程风格的实例:

(1)计算1001个从0~10定义域内的正弦值


C语言风格: i = 0 for t = 0 : 0.01: 10 i = i + 1 y(i) = sin(t) endMATLAB矩阵风格: t = 0 : 0.01 : 10 y = sin(t);


(2)已知10000个圆锥体的直径D和高度H,求它们的体积和。


C语言风格: for n = 1 : 10000 V(n) = 1/12 * pi * (D(n)^2) * H(n); endMATLAB矩阵风格: V = 1/12 * pi * (D.^2). * H

(3)假设矩阵A代表图像,计算图像的列均值和各像素与对应均值的差


C语言风格: mA = mean(A); B = zeros(size(A)); for n = 1 : size(A,2) B(:,n) = A(:,n) - mA(n); endMATLAB矩阵风格: devA = A - mean(A)

(4)计算两个向量形成的所有组合乘积的正弦值


C语言风格: x = -5: 0.1: 5; y = (-2.5: 0.1: 2.5)' N = length(x); M = length(y) for i = 1 : M for j = 1 : N Z(i,j) = sin(abs(x(i) * y(j))) endMATLAB矩阵风格: [X,Y] = meshgrid(-5: 0.1: 5, -2.5: 0.1: 2.5); Z = sin(abs(X.*Y));

注意:

(1)编程前要对矩阵进行内存预分配。

(2)慎用循环语句。

(3)多向量计算时使用遍历网格化,灵活使用meshgrid和ndgrid。

  • 5.使用技巧
  • (1)语法高亮提示:关键字为蓝色,字符向量为紫色,为结束的字符向量为褐色,注释为绿色。

(2)代码自动填充:对于代码中可能使用到的“名称”,如函数、模型、对象、文件、变量、结构体、图形属性等,只要输入前几个字符,按Tab键即可调出自动填充项,使用箭头键选择所需的名称,再次按Tab键确认。

(4)代码分析提示:在“ 编辑器  ”右侧的竖条,用颜色来表示代码状态,如红色表示语法错误,橙色表示警告或可改进,绿色则表示代码正常。

(5)注释及代码节功能:单百分号%后面所跟随的文字将被视为注释并标绿;双百分号加一空格“%% ”后面所跟随的文字也是注释,同时绿色加粗,作为“代码节”的标题,代码节的结束由下一组双百分号为标志。Ctrl+R快捷键为批量注释代码,Ctrl+T快捷键为批量取消注释。

(6)函数提示功能:输入函数名称及左括号,按Ctrl+F1快捷键,可以调出函数提示器。

(7)智能缩进功能:选择代码后,按Ctrl+I快捷键可以实现代码的智能缩进。

(8)变量自动识别与替换:光标处于某一变量时,所有同名变量均为天蓝色高亮显示,此时修改一处变量名,会有提示按Shift+Enter快捷键可以将其余所有实例同时修改。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空