M文件编写注意事项_换行
- 格式:docx
- 大小:13.14 KB
- 文档页数:1
MATLAB的M文件的学习和使用
一、概念
M文件是MATLAB的程序文件,分为两类:脚本文件和函数文件。
✓脚本文件可以用于执行一些简单的MATLAB命令,运行时直接输入文件名就可以。
✓函数文件使用时不能直接输入函数名,必须由其他语句调用。
二、基本操作:
✓创建M文件:点击工具栏上的图标,或在命令窗口输入edit。
✓打开M文件:点击工具栏上的图标。
✓保存M文件:写好内容后,点击保存按钮,函数文件保存时文件名要和函数名一致。
存储路径一定要是英文。
三、函数M文件格式
函数M文件不能独立执行,有输入参数和输出参数,输出形参多于一个时,用方括号括起来。
格式为:
●function [参数1,参数2,…]=函数名(参数1,参数2,…)
●注释
●函数体
四、示例
1、创建文件,写入函数,并保存。
两个数加、乘运算,定义为ff函数:
2、“当前路径”和文件保存路径一致时才能调用,如果不一致就会报错。
我的文件放在桌面上了,当前路径就是桌面:
3、调用时先给出函数参数的值,如图:
因为是输入输出都是形参,所以变量名可以自己定义:
4、把调用命令写到另一个M文件中,这个是M文件是脚本文件,保存为main1.m,
和在命令窗口调用效果是一样的:
5、运行main1文件,在命令窗口直接输入文件名即可:
或者点击main1文件的运行按钮,命令窗口出现结果:。
图书编写要求图书的编号、编号要求及易错字1.指南序列按以下排:(第一篇)第一章第一节一、(必须按序列换行)(一)(必须按序列换行)1.(必须按序列换行)(1)1)(序列可不换行)①(序列可不换行)(a)a) (序列可不换行)2.符号及易混淆忽略字:⑴“>”(书名号)改成“>”(拼音:大于)⑵“<”(书名号)改成“<”(拼音:小于)⑶注意“u”和“μ”的区别的区别并按内容正确的表达方式改正。
⑷注意1和l(小写英文字母L)的区别并按内容正确的表达方式改正。
⑸注意0和O(大写英文字母o)的区别并按内容正确的表达方式改正。
⑹注意“x”(英文字母)和“×”(拼音:乘以)的区别并按内容正确的表达方式改正。
⑺注意“:”(比值号即英文分号)和“:”(冒号)的区别,文字后面一律为冒号数字间的比值用比值号。
(注:比值号居中,冒号偏左)⑻如:“葡萄糖-半乳糖”、“表10-2”、“β-葡萄糖醛酸苷酶”中间用短的“-”⑼“1-2日、30—50ml”等改成“1~(拼音:波浪号)2日、30~(拼音:波浪号)50ml”⑽注意删除文字中不必要的空格。
⑾注意“人”和“入”的区别并按正确的表达方式改正。
⑿注意“是”和“足”的区别并按正确的表达方式改正。
⒀注意“面”和“而”的区别并按正确的表达方式改正。
⒁注意“井”和“并”的区别并按正确的表达方式改正。
⒂注意“rn”和“m”的区别并按正确的表达方式改正。
3.症、征、证的用法:并发症;体征、综合征;适应证、禁忌证。
4.章节后面的作者注意删除。
5.指南中已经删除的章节,如其他章节有引用,应删除表明引用的字眼,如:请参照XX。
图书的基本格式1.扉页包括:书名(含副书名),卷(册)序号,作者姓名,著作方式(著、编著、编、主编等),出版社社名,出版地。
2.版权页内容简介,图书在版编目(CIP)数据,图书制作责任者,版权记录,版本记录,定价,出版社申明。
3.内容简介一般按照内容分成两段:(1)简要介绍本书的内容和特点,一般300字以内;(2)读者对象。
vim替换命令替換(substitute):[range]s/pattern/string/[c,e,g,i]range指的是範圍,1,7 指從第⼀⾏⾄第七⾏,1,$ 指從第⼀⾏⾄最後⼀⾏,也就是整篇⽂章,也可以 % 代表。
還記得嗎? % 是⽬前編輯的⽂章,# 是前⼀次編輯的⽂章。
pattern就是要被替換掉的字串,可以⽤ regexp 來表⽰。
string將 pattern 由 string 所取代。
c confirm,每次替換前會詢問。
e不顯⽰ error。
g globe,不詢問,整⾏替換。
i ignore 不分⼤⼩寫。
g ⼤概都是要加的,否則只會替換每⼀⾏的第⼀個符合字串。
可以合起來⽤,如 cgi,表⽰不分⼤⼩寫,整⾏替換,替換前要詢問是否替換。
vi/vim 中可以使⽤ :s 命令来替换字符串。
以前只会使⽤⼀种格式来全⽂替换,今天发现该命令有很多种写法(vi 真是强⼤啊,还有很多需要学习),记录⼏种在此,⽅便以后查询。
:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky:s/vivian/sky/g 替换当前⾏所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 skyn 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏:%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每⼀⾏的第⼀个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替换每⼀⾏中所有 vivian 为 sky可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/:%s+/oradata/apras/+/user01/apras1+ (使⽤+ 来替换 / ): /oradata/apras/替换成/user01/apras1/1.:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky:s/vivian/sky/g 替换当前⾏所有 vivian 为 sky2. :n,$s/vivian/sky/ 替换第 n ⾏开始到最后⼀⾏中每⼀⾏的第⼀个 vivian 为 sky:n,$s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有 vivian 为 sky(n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏)3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每⼀⾏的第⼀个 vivian 为 sky:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替换每⼀⾏中所有 vivian 为 sky4. 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符:s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/5. 删除⽂本中的^M问题描述:对于换⾏,window下⽤回车换⾏(0A0D)来表⽰,Linux下是回车(0A)来表⽰。
实验三M文件与程序流程控制主要内容:M文件的编写,选择结构语句与循环语句。
一、M文件:M文件分为:命令文件和函数文件。
命令文件没有输入参数和输出参数,只是一些命令行的组合。
函数文件可以输入参数,也可以返回输出参数。
M文件的编写通过文本编辑器实现。
打开文本编辑器方式:三种方法。
edit1、x=linspace(0,2*pi);命令文件y=sin(x);plot(x,y) 见tt.m2、文件的执行顺序:1.检查此函数是否为子函数;2.检查此函数是否为私有目录的函数3.从所设定的搜索路径搜索此函数3、目录操作相关命令pwd 可返回当前工作目录dir 可显示当前工作目录下的内容。
Cd 可改变工作目录设定搜索路径二、程序流程控制1.顺序结构:例1.建立一个命令文件将变量a,b的值交换a=1:10;b=11:18;c=a;a=b;b=c;a,b 见exchange.m2、循环结构:(1)F or 循环语法用于循环次数已知的情况For 变量=变量表达式end例2:产生一个长度为6的调和序列(Harmonic Sequence)x=zeros(1,6); format rat 变为分数for i=1:6 format 改回默认值x(i)=1/i; 见har.mendformat ratx例3:产生一个6阶Hilbert矩阵,hij=1/(i+j-1)x=zeros(6); 使用zeros命令预先配置了以适当大小的矩阵,若不预先for i=1:6 配置矩阵,程序仍可执行,但此时matlab需要动态的增加for j=1:6 或减少)矩阵的大小,因而降低了程序的执行效率。
所以 h(i,j)=1/(i+j-1); 在使用一个矩阵时,若能在事前知道大小。
则最好先使用end zeros.ones等命令来预先配置矩阵所需的内存大小。
Endformat ratdisp(h) 显示数组,见hib.m(2)W hile循环语法:While 条件式一般用于循环次数未知的情况表达式end续例1:x=zeros(1,6);i=1;while i<=6x(i)=1/i;i=i+1;endformat ratx 见har2.m例4.找出最小的n,使得n!>10^100n=1;while prod(1:n)<1e100n=n+1;endfprintf('%g!=%e>1e100\n',n,prod(1:n));见zui.m函数fprintf把数据转换成字符并写入文件或屏幕上可以采用格式控制字符串来控制字符串写出的格式,常用的格式控制有;%e,表示写成指数形式,%f表示写成一般的浮点数形式,%g表示自动选择指数或浮点数的简短格式。
提高M文件执行效率的技巧1. 尽量避免使用循环结构MATLAB变量的基本类型是矩阵,当对矩阵的每个元素循环处理时,运算速度很慢。
因此编程时应尽量把数组和矩阵看作一个整体来进行编程,而不是像其他的程序设计语言那样,使用循环结构对矩阵的元素循环进行处理。
利用MATLAB提供的用于矢量化操作的函数,把循环矢量化,这样既可以提高编程效率,也可以提高程序的执行效率。
下面给出一个循环的例子:i=0;for n = 0:0.1:100i=i+1;y(i)=cos(n)end上述程序段把数组中的每个元素都进行函数值计算,这样会耗费大量的运算时间,我们可以把数组看作一个整体来处理,计算函数值,可以修改这个程序段如下。
n = 0:0.1:100;y = cos(n)通过使用MATLAB专门提供的测试程序运行时间的函数,可以发现,把数组看作一个整体,进行操作后,执行效率提高约300倍。
另外,在必须使用多重循环的情况下,建议在循环的外环执行循环次数少的,内环执行循环次数多的,这样也可以显著提高程序执行速度。
2. 在使用数组或矩阵之前先定义维数MATLAB中的变量在使用之前不需要明确地定义和指定维数。
但当未预定义数组或矩阵的维数时,当需赋值的元素下标超出现有的维数时,MATLAB 就为该数组或矩阵扩维一次,这样就会大大降低程序的执行效率。
因此,在使用数组或矩阵之前,预定义维数可以提高程序的执行效率。
3. 对矩阵元素使用下标或者索引操作在MATLAB中,矩阵元素的引用可用两个下标来表示。
例如:A(i,j) 表示矩阵的第i行第j列的元素;A(1:k,j)表示矩阵A的第j列的前k个元素;A(:,j) 表示矩阵的第j列的所有元素。
求矩阵A的第j列元素的平均值的表达式为mean(A(:,j))。
4. 尽量多使用函数文件少使用脚本文件因为每次调用MATLAB的脚本文件都需要将不必要的中间变量加载到内存中,每执行一次,就加载一次。
函数在调用时被编译成了伪代码,只需要加载到内存一次。