30多个实用matlab编程技巧

感谢关注懂科学的程序员公众号!如果公众号文章对您有帮助,别忘了点击分享和“在看”哦!若您对公众号有什么意见或建议,请在公众号中回复或在任意文章底部留言!

今天给大家介绍一些编程小技巧,之前给大家介绍过matlab编程小技巧,本期是在之前的基础之上做了修正和补充完善,下面一起来看看吧。

1、能用矩阵计算的就用矩阵计算,不能用矩阵计算的想方设法也要往矩阵计算上靠。

2、少用循环,尤其是避免多重循环嵌套,尽量用向量化的运算来代替循环操作。在必须使用多重循环的情况下,若各层循环执行的次数不同,则在循环的外层执行循环次数少的,内层执行循环次数多的。

3、在定义数组变量时先预定义数组的大小能大大提高计算效率。

4、对于多核CPU,使用parfor比用for更节约时间。

5、定义循环变量时,尽量不要使用i和j,因为i和j是matlab预留的虚数单位。

6、在m文件前面使用clear,close,clc等命令可以释放内存、清理窗口。

7、对于三角函数计算,在系统默认函数前后面加"d"是直接进行角度计算,这里"d"代表"degree",例如sind(30) = 0.5,效果与sin(30*pi/180)一样,其他的有cosd、tand等。

8、在程序运行结束后,使用clearvars可以清掉不需要的变量而保留结果变量,例如,clearvars -except varA varB,意思是清除变量空间中除了变量varA,varB以外的所有变量。

9、使用Ctrl+C可以中止正在运行的程序。

10、doc + 函数名,直接打开相应函数的matlab帮助文档。help + 函数名,在命令窗口中显示相应函数的帮助信息。

11、在M脚本编辑器或在命令窗口中按"Tab"键可以补全函数名或变量名。

12、选中代码按"Ctrl + R"键是一键注释代码,选中代码按"Ctrl + T"键是一键取消注释。

13、选中代码按"Ctrl + I"键是一键智能对齐代码。

14、在进行绘图操作时,多使用figure命令,其作用是新建一个空的绘图窗口,接下的绘图命令可以将图绘制在它里面,而不会覆盖其他绘图窗口。

15、在命令窗口输入edit或open+函数名可以快速打开m文件。

16、元胞数组可以存储不同类型和大小的数据。

17、使用单精度 single替代双精度 double可以节约内存开销。

18、matlab 输入Å (埃,Angstrom),示例: xlabel(' length(\AA)','interpreter','latex').

19、在matlab中显示上下标,上标用'^',下标用'_'.

20、在matlab中输入希腊字母及特殊字符,采用'\+字母或字符读音',如: α \alpha.

21、成对符如括号、引号等的自动补全,matlab脚本编辑器本身不带成对符自动补全的自动补全功能,不过可以通过输入法设置就可以实现自动补全功能。如手心输入法,打开“设置”,在“按键”下找到“智能符号设置”,勾选自动补全成对符,在编辑脚本打开此输入法即可。

22、通过mat2cell命令可以方便快捷地将大矩阵划分成一个个矩阵,通过使用cellfun命令可以快速对各个小矩阵进行各种处理。

23、对于安装了支持GPU计算的计算机,可以通过gpuArray来快速使用GPU进行计算。当然对于数据量较小时,gpuArray的效率也不是太高,gpuArray.函数名可以调用一些内置的函数进行GPU计算,如果gpuArray.zeros(100,100)可以在GPU中生成100*100大小的0方阵。

24、计算完成后,使用save()函数将数据保存成本地mat文件,常用格式为 ① save('filename', 'var1', 'var2', ...):保存指定的变量在 filename 指定的文件中、② save matname var1 var2 ......。

25、使用tic和toc命令可以获取程序运行所花时间。也可以与if判断语句相结合通过判断运行时间来终端程序运行。示例:

for k = 1:1000

    tic;

    tmp = rand(k);

    tm = toc;

    % tmp语句运行时间超过0.001时程序就会跳出循环。

    if tm > 0.001  

        break;

    end

end

26、对多矩阵求和(sum)、平均值(mean)、最大值(max)等时,可以用冒号(:)符来直接取所有元素,而不是用这些命令嵌套。示例:x = rand(3,4,2,2),对x求和。使用嵌套的话要用四次sum,即sum(sum(sum(sum(x)))),而用冒号表达式则只需用一次,即sum(x(:))。这样不仅使代码简洁,运行效率也会有所提高。

27、常用向量化函数 ——  accumarray、arrayfun 、bsxfun 、cellfun 、spfun 、structfun等。

28、通过delete命令可以实现m自毁功能,例如一个名为test.m的m文件,在程序结尾添加delete('test.m'); 程序运行完成后将自动删除自身。

29、关于matlab中矩阵大小的计算函数,length函数计算矩阵最大维的大小;size函数计算各维的大小;numel函数计算矩阵中元素的总个数,如numel(A(:))。

30、程序调试神器命令 —— dbstop if error,添加此命令到程序中,程序运行中如果遇到错误将自动停止在错误处,对快速查找程序错误非常有帮助。

31、end命令的妙用,end除了作为自定义函数和控制流函数的终止标识符外,还能作为数组的末尾索引,如下:

A = rand(1,10);
% A(10)和A(end),A(8)和A(end-2)是等价的。

32、路径和文件相关的函数,也是很多初学的小伙伴常疑惑的问题,下面就来整理一下与路径文件相关的命令:

pwd       % 获取当前工作路径
dir       % 列出当前文件夹中的文件和文件夹
ls        % 列出当前中文件夹内容 
cd        % 打开指定文件
mkdir     % 创建新文件夹
rmdir     % 删除文件夹
copyfile  % 复制文件或文件夹
movefile  % 移动或重命名文件或文件夹
delete    % 删除文件或对象

温馨提示

长期坚持创作不易,如果您喜欢这篇推文,烦请有空点个赞,以资鼓励!喜欢就关注一下哦,谢谢!

c06055ddf12c7a40434e843e629389df.png

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章MATLAB7.0简介1.1MATLAB的特点1.1.1MATLAB的基本特点1.1.2MATLAB7.0的新特点1.2MATLAB桌面简介1.2.1启动按钮1.2.2命令窗口1.2.3命令历史窗口1.2.4T作空间窗口1.2.5当前目录浏览器1.3MATLAB的帮助系统1.3.1帮助浏览器1.3.2help函数和doc函数第2章数组和矩阵2.1表达式2.1.1变量2.1.2数值表示2.1.3运算符2.1.4函数2.2构造数组2.2.1用增量法构造数组2.2.2用linspace函数构造数组2.3构造矩阵2.3.1简单的创建方法2.3.2构造特殊矩阵2.3.3聚合矩阵2.3.4组合不同类型的数据2.4获取矩阵的元素2.4.1获取单个元素2.4.2线性索引2.4.3获取多个元素2.5获取与矩阵有关的信息2.6缩放和重塑矩阵2.6.1放大矩阵2.6.2重塑矩阵2.7导入数据2.7.1导入文本数据2.7.2导入MAT文件数据2.7.3使用ImportWizard工具2.8矩阵的代数运算2.9矩阵的逻辑运算第3章数值计算3.1方程求解3.1.1求解线性方程组3.1.2乔累斯基、LU和QR分解3.1.3特征值3.2多项式3.2.1多项式求根3.2.2多项式评价3.2.3卷积和去卷积3.2.4多项式求导3.2.5多项式曲线拟合3.3插值3.3.1一维插值3.3.2维插值3.3.3插值和多维数组3.4数据分析和统计3.4.1面向列的数据集合3.4.2基本数据分析函数3.4.3方差和相关系数3.4.4有限差分3.4.5数据预处理3.4.6回归分析3.4.7曲线拟合第4章M文件设计4.1M文件编辑器4.2脚本式M文件和函数式M文件4.3流控制4.4函数变量4.4.1检查输入变量的个数4.4.2传递变量4.4.3解包varargin中的内容4.4.4打包varargout4.4.5变量列表中的varargin和varargout4.4.6返回输出变量4.5子函数和私有函数4.6编程技巧4.6.1函数句柄4.6.2函数的函数4.6.3向量化4.6.4预分配内存空间4.7面向对象编程第5章图形用户界面(GU,)设计5.1GUIDE简介5.1.1启动GUIDE””5.1.2输出编辑器5.1.3GUIDE模板5.1.4运行GUI5.1.5GUIFIG文件和M文件5.2创建GUI5.2.1设计GUI5.2.2完成GUI5.2.3设置GUI组件的属性5.2.4GUI编程5.2.5保存和运行GUI第6章编译和接口6.1MATLAB编译器4.06.1.1MATLAB编译器4.0的新特点6.1.2MATLAB编译器的使用6.1.3编译独立应用程序6.2MATLAB与VisualBasic接口6.2.1COM生成器1.16.2.2用COM生成器生成组件6.2.3在VisualBasic中使用组件6.2.4使用COM生成器时可能遇到的问题第7章二维图形绘制7.1线形图、条形图和面积图7.2饼图7.3误差条图7.4散点图7.5直方图7.6对数坐标图和半对数坐标图7.7多轴图7.8极坐标图7.9等值线图7.10向量图7.11帕累托图7.12火柴杆图7.13彗星图7.14罗盘图7.15羽列图7.16阶梯图7.17玫瑰花图7.18函数的图形7.19动画7.19.1以电影方式创建动画7.19.2以重绘方式创建动画第8章交互绘图与编辑8.1绘图工具8.1.1图形窗口的工具条、8.1.2绘图工具——交互绘图8.1.3使用绘图工具8.1.4用工作空间中的变量绘图8.1.5指定数据源8.1.6编辑图形8.1.7使用图形编辑模式8.1.8保存结果8.2数据查看工具8.2.1数据光标——交互显示数据的值8.2.2维和三维图形的缩放8.2.3平移图形8.2.4三维视图的交互旋转8.2.5分析图形数据8.3标注图形8.3.1如何标注图形8.3.2对齐工具——对齐和分布对象8.33添加标题8.3.4添加坐标系标签8.3.5添加文本标注8.3.6添加箭头和直线第9章句柄图形对象9.1面向对象的思维方式9.2句柄图形对象的组织9.2.1句柄图形对象的层次结构9.2.2句柄图形对象的类型9.3图形窗Figure对象9.3.1用于绘图的图形窗口9.3.2Figure对象用做GUI9.3.3Root对象——Figure对象的父对象9.4核心图形对象9.4.1核心图形对象简介9.4.2创建核心图形对象9.4.3父对象9.4.4高级函数和低级函数9.4.5简化的调用语法9.5绘图对象9.5.1创建绘图对象9.5.2编程识别绘图对象9.5.3链接图形和变量9.5.4保存与MATLAB以前版本相兼容的图形9.6Annotation对象9.7组对象9.7.1创建组对象9.7.2变换对象9.8对象的属性9.8.1设置和查询属性值9.8.2默认属性9.8.3示例——设置默认线型9.9句柄操作9.9.1获取对象句柄9.9.2当前图形、坐标轴和对象9.9.3用属性值查找对象——findobi函数9.9.4复制对象9.9.5删除对象9.10句柄图形的视图控制9.10.1指定图形输出的目标区域9.10.2设置图形窗口和坐标系9.10.3测试持续绘图(Hold)状态9.10.4防止FigureAxes对象成为绘图目标区域9.10.5关闭请求函数9.11把句柄保存到M文件9.12可包含其他对象的对象9.13句柄图形对象的回调9.13.1图形对象的回调属性9.13.2函数句柄回调9.14Figure对象9.14.1在面板上锚定图形窗口9.14.2与窗口锚定有关的属性9.14.3确定图形窗口的位置和大小9.15坐标系属性9.15.1标签和外观属性9.15.2坐标系的位置和大小9.15.3在同一图形窗口中显示多个坐标系9.15.4单个坐标轴的控制9.15.5使用多个x轴和y轴第10章定制二维图形10.1基本图形元素10.1.1直线段、多义线和曲线——Line对象10.1.2矩形、圆角矩形、椭圆、圆及对应的区域图形——Rectangle对象10.1.3多边形——Patch对象10.1.4文本——Text对象10.2定制二维图形第11章三维模型的建立11.1线形模型的建立11.1.1参数曲线11.1.2样条曲线11.1.3用给定数据绘图11.1.4三维等值线图11,1.5三维向量图11.2曲面模型的建立11.2.1函数表示的曲面11.2.2~--次曲面11.2.3样条曲面11.2.4用给定数据绘图t12.5非均匀采样数据的曲面图11.2.6表面图绘制的数据格式问题11.3多边形对象模型11.3.1patch函数11.3.2用patch函数创建面片11.4消隐控制第12章三维模型的着色12.1网格图、刻面图和曲面图的着色12.1.1主要的着色技术12.1.2颜色查找表12.1.3索引着色表面——直接映射和比例化映射12.1.4示例——表面曲率向颜色映射12.1.5真彩色表面12.1.6纹理映射12.2多边形模型的着色12.2.1面片只有一个小面的情况12.2.2面片有多个小面的情况12.2.3控制面片着色的属性12.2.4面片边的着色第13章光照与材质13.1Light对象13.2光照命令13.3给场景添加光照13.4影响光照效果的属性13.5光照算法13.6图形对象的反射特性——材质13.6.1镜面反射和漫反射13.6.2环境光13.6.3镜面反射指数13.6.4镜面反射光的颜色13.6.5背面光照13.6.6material函数13.6.7一个例子第14章透明性14.1使对象透明14.1.1alpha值14.1.2与透明性相关的属性14.2指定一个单独的透明度值14.3将数据映射给透明度14.3.1alpha数据数组的大小14.3.2将alpha数据映射至,Jalpha查找表14.3.3示例——将数据映射到颜色或透明度14.4选择一个alpha查找表第15章交互操作15.1视点和相机15.1.1用方位角和仰角设置视点15.1.2交互工具——相机15.2用相机工具条进行场景空间变换15.2.1相机工具条15.2.2交换主轴15.2.3盘旋15.2.4平移15.2.5缩放15.2.6滚动15.2.7漫游15.3用与相机有关的函数实现场景空间变换15.3.1与相机有关的函数15.3.2示例1——平移图像15.3.3示例2——穿越场景15.3.4低级相机属性15.4投影15.4.t正交投影和透视投影15.4.2投影类型和相机位置15.4.3坐标轴方向上的显示比率第16章MATLAB提供的科学计算可视化工具16.1剖面图16.1.1slice函数16.1.2切片等值线图16.1.3切片流线图16.2表现流动特征16.2.1流线图16.2.2流锥图16.2.3流沙图16.2.4流带图16.2.5流管图16.2.6卷曲图16.3等值面16.4等帽盖16.5减少面片上小面的个数16.6减少体数据集中元素的个数16.7缩小面片中的小面16.8子体积16.9体包围盒16.10计算几何问题16.10.1散点数据的三角化和插值16.10.2高维散点集的剖分和插值

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值