第二讲M文件的编写

合集下载

MATLAB的M文件学习和使用_纯手打-真实经验之谈

MATLAB的M文件学习和使用_纯手打-真实经验之谈

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文件的运行按钮,命令窗口出现结果:。

MatlabM文件编程

MatlabM文件编程

函数文件例3 函数文件例3:多个输出参数
function[avg,stdev,r]=ourstats(x) % ourstats多输入输出参数示例 ourstats多输入输出参数示例 % 该函数计算处理矩阵,得到相应的均值、标准差和矩阵的秩 [m,n]=size(x); if m==1 m=n; end % Average avg=sum(x)/m; % Sandad deviation stdev=sqrt(sum(x.^2)/mstdev=sqrt(sum(x.^2)/m-avg.^2); % Rank r=rank(x);
M文件调试
M文件的调试
可以在文件编辑器中进行
M语言的文件编辑器不仅仅是一个文件编辑器,还是 一个可视化的调试开发环境
可以在命令行中结合具体的命令进行
M文件调试
应用程序的错误
语法错误
包括词法或者文法的错误
运行时的错误
指程序运行过程中得到的结果不是用户需要的结果
程序的调试是在程序无法得到正确结果时进行程 序修正的唯一手段
(2)M文件模式
将MATLAB语句构成的程序存储成以m为扩展名的 MATLAB语句构成的程序存储成以m 文件,然后再执行该程序文件,这种工作模式 称为程序文件模式。
M语言文件可以分为主程序文件和函数文件 一个M语言文件就是由若干MATLAB的命令组合在一 起构成的。 M语言文件是标准的纯文本格式的文件,其文件扩 展名为.m。 MATLAB提供了meditor编辑器编辑M文件 注意: (1)不可用汉字命名(若用汉字命名虽然可以打开M文 件,但是编译运行时会出错); (2)文件名不可与MATLAB内置函数 重名; (3)文件名不可以以数字命名。
在函数文件中可以包含多个函数,其中第一个函数称为主函数, 在函数文件中可以包含多个函数,其中第一个函数称为主函数, 其函数名与文件名相同, 函数文件中的其他函数称为子函数, 其函数名与文件名相同,在M函数文件中的其他函数称为子函数, 它只能由这一函数文件中的主函数或其他子函数引用

M文件

M文件
上的M文件调用或指令窗中的命令所调用。 help lookfor 等不能提供这两者的任何信息。
串演算函数
MATBLAB提供的一种利用字符串进行计算的 能力。
eval 、feval 指令 内联函数
eval、 feval 指令
eval格式 y=eval(‘CE’) 执行CE指定的计算; y=eval(‘CE1’,’CE2’) 执行CE1指定的计算,若出错,就执行CE2; [Y1,Y2,…]=eval(‘CE’) 执行对CE代表的函数文件调用,并输出计算结果。
可对工作空间中的变量进行操作,也可生成新的 变量。即使命令文件运行结束,命令文件产生的 变量仍将保留在工作空间中,直到关闭MATLAB 或用相关命令删除。
在MATLAB提示符下,如键入文件名,则 MATLAB会自动执行这一文件中的每条命令,并 产生执行结果。
函数文件
函数M文件提供了一个简单的扩展MATLAB功能的 方法。事实上,MATLAB本身的许多标准函数就 是M文件函数。
varargin “变长度”输入变量列表; varargout “变长度”输入变量列表。
1. 它们的长度随分配到的输入、输出变量数而变。 2. 编写M函数文件时,函数申明行中的“变长度” 输入变量必须被放置在“普通”输入变量之后。
控制流语句
For循环,While循环,If-Else-End结构和 switch-case-end结构 .
函数句柄(function handle)
它是MATLAB6.x版启用的新数据类型。
MATLAB支持的控制流语句和C语言等语言所 支持的控制流语句在调用格式上非常相似.
For循环
例: 公元前五世纪我国古代数学家张丘建在《算经》 一书中提出了“百鸡问题”:鸡翁一值钱五,鸡 母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡 翁、母、雏各几何?

matlab编写M文件(函数)

matlab编写M文件(函数)

matlab编写M文件(函数)matlab的命令编辑窗口(Command Window)界面主要是用来调用系统命令、调用自定义函数(m文件里定义的函数)或编写一些较小的代码。

在遇到需要用到比较多的代码才能摆平的需求时,在命令编辑窗口每一行都有提示输入符号,用起来不是很方便(如前所述而且命令编辑窗口主要是用来调用命令之用),此时我们不得不求助于matlab的m文件来编写代码。

所以,记录一下经自行探索其编写方式后的入门过程:版本:MATLAB 7.9.0(R2009b)1.新建m文件打开matlab软件-->file-->new-->Function m-file经过此步骤之后,matlab会弹出一个新的编辑窗口,并生成少许代码如下:[plain]view plaincopyprint?1.function [ output_args ] = Untitled( input_args )2.%UNTITLED Summary of this function goes here3.% Detailed explanation goes here4.5.6.7.8.end这些代码是一个m-函数的模板。

function:表示编写的是一个函数。

output_args: 表示编写此函数的返回值(不同于C语言的是需要被返回的值无需使用return语句,只要将outp_args相应的参数拿到代码中赋值即可,同一般变量的使用),各返回值间用逗号隔开。

input_args: 此函数的输入参数,各参数之间用逗号隔开。

Untitled: 这是您所编写函数时所定义的函数名。

注意:函数名和m文件名需要保持一致。

如刚所创建的m文件在工作空间时命名为“RungeKuttaCalculate.m”则相应的函数名也需要为“RungeKuttaCalculate”,否则会引起报错。

%: 是matlab的注释语句的注释符,相当于C语言中的行注释符"//",在这里你可以描述此函数的功能,参数含义和返回值含义,使其含义更加明确。

MatlabM文件编程

MatlabM文件编程
% 主函数 % 调用子函数 % 调用子函数 % 子函数
% 子函数
局部变量和全局变量

局部变量:在M函数内部声明并使用的变量 只在本函数范围内有效 仅能在函数调用执行期间被使用,一旦函数结束运行,则 变量占用的内存空间自动释放,变量的数值也不存在了
运行局部变量的例子 >> local 函数中的变量 Name Size Bytes Class u 1x3 256 cell array x 2x2 32 double array y 2x2 32 double array z 1x6 12 char array Grand total is 31 elements using 332 bytes >> whos >>
输入输出参数(续)
运行例4-15 >> A=[1 2 3;4 5 6] A = 1 2 3 4 5 6 >> [a,s,r]=ourstats(A) a = 2.5000 3.5000 4.5000 s = r = >> a=ourstats(A,0.1) a = 2.5000 3.5000
4.5000
函数文件供主程序文件调用,必须指定函数名和
输入输出参数,并由主程序文件中语句序列给出 一系列操作,从而生成所需数据 函数文件格式一般包括以下部分: (1)函数定义行:表明该m文件包含一个函数, 且为其定义函数名、输入参数和输出参数 function y=mean(x) (2)帮助信息:处在文件中的第二行,应该反 映该m文件概括性信息 %求平均值

保留变量实例
function y=persistent_example(x) % PERSISTENT_EXAMPLE 保留变量使用示例 for i=1:x y=myfun; end function y=myfun % 子函数 % persistent关键字的使用 persistent count; % count记录函数调用的次数 if (isempty(count)) count=1; else count=count+1; end str=sprintf('第%d次调用该函数',count); disp(str); y=count;

matlab编写m文件

matlab编写m文件
x(1)=1;
forn=1:100;
x(n+1)=(x(n)+a/x(n))/2;
ifabs(x(n+1)-x(n))<1e-5
y= x(n+1);
end
end
y
结果:
请输入一个数:49
y =
7
用matlab编写m文件学会编写文件练习循环语句forwhile和条件语句ifelseendswitchcaseend一实验目的二实验内容及要求建立一个命令m文件
用matlab编写mr、while和条件语句if-else-end、switch-case-end
一、实验目的
三、实验结果和程序
1.程序:
clc
fors=100:999;
a=fix(s/100);
b=fix(s/10-10*a);
c=s-100*a-10*b;
ifs==a.^3+b.^3+c.^3
disp(s)
end
end
结果:
153
370
371
407
2.程序:
clear
clc
a=input('ÇëÊäÈëÒ»¸öÊý£º');
二、实验内容及要求
1.建立一个命令M-文件:求所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。
2.编写函数M-文件SQRT.m:用迭代法求 的值。求平方根的迭代公式为:
迭代的终止条件为前后两次求出的x的差的绝对值小于10-5。

M文件与程序流程控制

M文件与程序流程控制

实验三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文件ppt课件

程序设计M文件ppt课件
函数test2的调用:[90,89,60]分别表示数学、英语、语文的成绩
>> [a,b,c]=test2([90,89,60],[79,89,66],[99,98,100])
a= 89.3333
b= 32.6667
c= 33.3333
思考:如果多个学生的成绩是同一科目的成绩放在一个数组中,如何修改 test2函数。
• for语句
for循环语句是流程控制语句中的基础,使用该循环语句可以以 指定的次数重复执行循环体内的语句。 for循环语句的调用形式:
for 循环控制变量=<循环次数设定>(可以是已定义的向 量,也可在for循环语句中定义)
循环体 end
回到本章目录
for i = 1:4
% 初始值:步长:终值(步长默认为1)
回到本章目录
函数input的另一种调用格式: var=input(‘提示性语句’,’s’)
以该格式调用时,input函数将视用户键盘输入的一切字符 为字符型赋予变量var,而不对其进行任何计算。在提示型 语句中可以用“\n”来控制显示时的换行。例如:
第一种调用格式:
>> a=input('input example\n') input example 1+4 a=
break语句:当程序流程运行至该命令时,则不论循环控制变 量是否满足循环判断语句,均将退出当前循环,执行循环后 的其他语句。
continue命令:当程序流程运行至该命令时,会忽视其后的循 环体操作转而执行下一层的循环。
回到本章目录
63
2n
例. 计算级数:S=1+2+22+23+···+263= n 0

第二讲M文件的编写

第二讲M文件的编写

2.switch语句(开关结构) switch语句根据表达式的取值不同,分别执行不 同的语句,其语句格式为: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 …… case 表达式m 语句组m otherwise 语句组n end
当表达式的值等于表达式1的值时,执 行语句组1,当表达式的值等于表达式 2的值时,执行语句组2,…,当表达 式的值等于表达式m的值时,执行语 句组m,当表达式的值不等于case所列 的表达式的值时,执行语句组n。当任 意一个分支的语句执行完后,直接执 行switch语句的下一句。
循环结构 1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式 2的值为步长,表达式3的值为循环变量的 终值。步长为1时,表达式2可以省略。
例7 一个三位正整数各位数字的立方和等于 该数本身则称该数为水仙花数。输出全部 水仙花数。
(2) 双分支if语句: if 条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语 句组2,语句组1或语句组2执行后,再执行 if语句的后继语句。
例4 计算分段函数的值。
程序如下: x=input('请输入x的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end y
程序控制结构
顺序结构 1.数据的输入
从键盘输入数据,则可以使用input函数来进行,该 函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什 么样的数据。 例 R = input('How many apples:') 如果在input函数调用时采用's'选项,则允许用户 输入一个字符串。例如,想输入一个人的姓名, 可采用命令:xm=input('What is your name?','s');

2.7 M程序文件

2.7 M程序文件

2.7 Matlab 程序文件Matlab程序文件包括脚本文件和函数文件两种,它们都统称为M文件,其中后者比前者复杂。

M文件的存在使Matlab具有强大的编程功能。

本节主要讲述两种程序文件的编写、保存和运行。

第一节Matlab 工作模式1.1 指令驱动模式Matlab 通常以指令驱动模式工作,即在Matlab命令窗口下,输入单行指令并敲击回车。

Matlab立即处理这条指令,并显示结果。

例如:>> x1=0:10, x2=0:3:11>> x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0 3 6 9缺点:在Matlab 窗口输入数据和命令进行计算时,处理复杂问题和大量数据不方便。

程序可读性差,而且不能存储,对于复杂问题,应编写成能存储的M文件。

1.2 M文件模式将Matlab 语句构成的程序存储成以m为扩展名的文件,称为M文件,然后再执行该程序文件。

M文件根据调用方式的不同分为两类:脚本文件(又称为命令文件)(Script File)和函数文件(Function File)。

在Matlab 窗口输入这些文件的名称,Matlab即运行文件中的语句。

第二节M脚本文件的编写和运行脚本文件又称为命令文件),是一连串命令语句的集合体。

2.1 脚本文件的定义将原本要在MATLAB 环境下直接输入的多条语句,存放为.m后缀的文件,在命令行键入文件名即可运行。

替代多条语句,一次执行成批命令。

例如,建立一个脚本文件如下。

2.2 脚本文件编写、保存和运行例:编写一个脚本文件,将华氏温度变为摄氏温度% 脚本文件% 将华氏温度变为摄氏温度clear;f=input('Please input f:');c=5*(f-32)/9;fprintf('c = %g\n',c);1. 选择编写界面如下图,点击NEW,出来下拉菜单,其中第一行为Script 即为脚本文件编写指令。

Matlab笔记之十一---- 有关M文件编写

Matlab笔记之十一---- 有关M文件编写

Matlab笔记之十一---- ◎#有关M文件编写#◎for循环结构:for x = array( commands )endwhile循环结构:while expression( commands )enda(1)=1a(2)=1i=2while a(i)<=10000a(i+1)=a(i-1)+a(i)i=i+1end;ia(i)单分支:if expression(commands)end双分支:if expression(commands1)else(commands2)end多分支:if expression1(commands)elseif expression2(commands)…………else(commands)end如果判决条件expression为一个空数组,MATLAB认为条件为假(false)。

表达式有时由多个逻辑子表达式组成的,MATLAB将尽可能少地检测这些子表达式的值。

例如,表达式为:(子表达式1 |子表达式2),当MATLAB 检测到子表达式1的值为真时,它就认为表达式为真,而不再对子表达式2进行检测。

又如,表达式为:(子表达式1 & 子表达式2),当MATLAB检测到子表达式1的值为假时,它就认为表达式值为假的,从而跳过该结构。

if指令判决和break指令的配合使用,可以强制终止for循环或while循环。

switch-case结构:switch ex ex为一标量或字符串。

case test1(commands 1) 当ex等于test1时,执行组命令1,然后跳出该结构。

case test2……(commands k) 当ex等于testk时,执行组命令k,然后跳出该结构。

otherwise otherwise指令可以不存在(commands) 表达式不等于前面所有检测值时,则执行该组命令。

end1 当遇到switch结构时,MATLAB将表达式的值依次和各个case指令后面的检测值进行比较。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择结构 1.if语句(条件转移结构) 语句( . 语句 条件转移结构) 语句有3种格式 在MATLAB中,if语句有 种格式。 中 语句有 种格式。 (1) 单分支if语句: 单分支 语句: 语句 if 条件 语句组 end 当条件成立时,则执行语句组, 当条件成立时,则执行语句组,执行完之 后继续执行if语句的后继语句,若条件不成 后继续执行 语句的后继语句, 语句的后继语句 则直接执行if语句的后继语句 语句的后继语句。 立,则直接执行 语句的后继语句。
求一元二次方程ax 的根。 例3 求一元二次方程 2 +bx+c=0的根。 的根 程序如下: 程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; if d>=0 x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]); end
(2) 双分支 语句: 双分支if语句 语句: if 条件 语句组1 语句组 else 语句组2 语句组2 end 当条件成立时,执行语句组1, 当条件成立时,执行语句组 ,否则执行语 句组2,语句组1或语句组 执行后, 或语句组2执行后 句组 ,语句组 或语句组 执行后,再执行 if语句的后继语句。 语句的后继语句。 语句的后继语句
输入学生的成绩,输出其成绩等级( 输入学生的成绩,输出其成绩等级(百分制换五 分制)。 分制)。
程序如下: 程序如下: mark=input('请输入学生成绩 请输入学生成绩'); 请输入学生成绩 下取整 上取整 switch fix(mark/10) case {10,9} %成绩在 与100之间 成绩在90与 成绩在 之间 grade='A'; ceil, floor, case {8} %成绩大于等于 但小于 成绩大于等于80但小于 成绩大于等于 但小于90 round, fix. grade='B'; case {7} %成绩大于等于 但小于 成绩大于等于70但小于 成绩大于等于 但小于80 grade='C'; 朝零取整 最邻近取整 case {6} %成绩大于等于 但小于 成绩大于等于60但小于 成绩大于等于 但小于70 grade='D'; ceil(1.8)? ? otherwise %成绩低于 成绩低于60 成绩低于 grade='E'; floor(1.8)? ? end fix(1.8)?fix(-1.8)? ? ? grade
程序控制结构
顺序结构 1.数据的输入 .
从键盘输入数据,则可以使用 函数来进行, 从键盘输入数据,则可以使用input函数来进行,该 函数来进行 函数的调用格式为: 函数的调用格式为: A=input(提示信息,选项 ; 提示信息, 提示信息 选项); 其中提示信息为一个字符串, 其中提示信息为一个字符串,用于提示用户输入什 么样的数据。 么样的数据。 如果在input函数调用时采用 选项,则允许用户 函数调用时采用's'选项 如果在 函数调用时采用 选项, 输入一个字符串。例如,想输入一个人的姓名, 输入一个字符串。例如,想输入一个人的姓名, 可采用命令: 可采用命令:xm=input('What is your name?','s'); R = input('How many apples:')
计算分段函数的值。 例4 计算分段函数的值。
程序如下: 程序如下: x=input('请输入 的值 请输入x的值 请输入 的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end y
(3) 多分支 语句: 多分支if语句 语句:
某班级对学生的成绩划分等级, 例5 某班级对学生的成绩划分等级,标准如 分数用mark来表示 : 来表示): 下(分数用 分数用 来表示 90 ≤ mark ≤ 100 等级为A 等级为 80≤mark<90 等级为B 等级为 70≤mark<80 等级为C 等级为 60≤mark<70 等级为D 等级为 0≤mark<60 等级为E 等级为
2.数据的输出 . MATLAB提供的命令窗口输出函数主 提供的命令窗口输出函数主 要有disp函数,其调用格式为 要有 函数, 函数 disp(输出项 输出项) 输出项 其中输出项既可以为字符串, 其中输出项既可以为字符串,也可以 为矩阵。 为矩阵。
disp(‘a’)和 disp(a)分别返回什么结果?
round(1.8)? ( )? round(-1.8)? ( )?
3.try语句 . 语句 语句格式为: 语句格式为: try 语句组1 语句组 catch 语句组2 语句组 end try语句先试探性执行语句组 ,如果语句组 语句先试探性执行语句组1,如果语句组1 语句先试探性执行语句组 在执行过程中出现错误, 在执行过程中出现错误,则将错误信息赋给 保留的lasterr变量,并转去执行语句组 。 变量, 保留的 变量 并转去执行语句组2。
ቤተ መጻሕፍቲ ባይዱ
MATLAB运算符
1.关系运算符 关系运算符对于程序的流程控制非常有用. MATLAB共有六个关系运算符,它们分别是 < 小于;< = 小于等于;> 大于;>= 大于等 = 于;﹦﹦ 等于;~ = ~ =不等于 关系运算符可以比较同型矩阵,此时将生成一个 0-1矩阵,当相应元素经关系运算为真时,对应 位置上生成1,否则为0。关系运算符也可以比较 标量和矩阵,此时是标量与矩阵的每个元素分别 比较,生成一个0-1矩阵.
矩阵乘法运算要求两矩阵的维数相容, 例6 矩阵乘法运算要求两矩阵的维数相容,否则会 出错。先求两矩阵的乘积,若出错, 出错。先求两矩阵的乘积,若出错,则自动转去 求两矩阵的点乘。 求两矩阵的点乘。 程序如下: 程序如下: A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因 显示出错原因
程序2:首先建立函数文件 程序 :首先建立函数文件f2c.m。 。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 的命令窗口调用该函数文件。 然后在 的命令窗口调用该函数文件 clear; y=input('Input Fahrenheit temperature:'); : x=f2c(y) 输出情况为: 输出情况为: Input Fahrenheit temperature:70 : c= 21.1111 x= 21.1111
函数文件的文件名必须与其函数名相同。 函数文件的文件名必须与其函数名相同。
M文件包括两部分:注释文件和程序 文件包括两部分: 文件包括两部分 文件 syms x y % symbol variables 程序部分 f = x^2+y; fi=finverse(f,y) %functional inverse
分别建立命令文件和函数文件, 例1 分别建立命令文件和函数文件,将华氏 温度f转换为摄氏温度 转换为摄氏温度c。 温度 转换为摄氏温度 。 程序1:首先建立命令文件并以文件名f2c.m 程序 :首先建立命令文件并以文件名 存盘。 存盘。 clear; %清除工作空间中的变量 清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); temperature: c=5*(f-32)/9 然后在MATLAB的命令窗口中输入 ,将会 的命令窗口中输入f2c, 然后在 的命令窗口中输入 执行该命令文件,执行情况为: 执行该命令文件,执行情况为: Input Fahrenheit temperature:73 : c= 22.7778
当表达式的值等于表达式1的值时,执 当表达式的值等于表达式 的值时, 的值时 行语句组1, 行语句组 ,当表达式的值等于表达式 2的值时,执行语句组 ,…,当表达 的值时, 的值时 执行语句组2, , 式的值等于表达式m的值时 的值时, 式的值等于表达式 的值时,执行语 句组m,当表达式的值不等于case所列 句组m,当表达式的值不等于case所列 的表达式的值时,执行语句组n。 的表达式的值时,执行语句组 。当任 意一个分支的语句执行完后, 意一个分支的语句执行完后,直接执 语句的下一句。 行switch语句的下一句。 语句的下一句
MATLAB运算符
2.逻辑运算符 MATLAB有三个逻辑运算符:与(&)或(|)非(~)。 对于数值矩阵,当元素为0时,逻辑上为假;当元素 为非0时,逻辑上为真.同关系运算符一样,逻辑运算符两 端的运算数可以是同型矩阵,对两矩阵的相应元素分别运 算,结果为一个0-1矩阵.当逻辑表达式的值为真时,赋 0-1 值1,否则为0.同样,其中一个矩阵也可以是标量。 与(&)运算: 两个运算数都为真时,结果为真, 其他情况下(一真一假或两个都假)结果为假. 或(|)运算: 两个运算数都为假时,结果为假,其 他情况下(一真一假或两个都真)为真. 非(~)运算: 只有一个运算数,当该运算数为真 时,结果为假,否则,结果为真.
第二讲
MATLAB程序设计 程序设计
程序控制结构 函数文件 程序举例 程序调试
m文件简介
用户如想灵活应用matlab去解决实际问题, 充分调用matlab的科学技术资源,就需要编 辑m文件. 包含matlab语言代码的文件称为m文件,其 扩展名为m. 编辑m文件可使用各种文本编辑器.
复习
M文件 文件 语言编写的程序, 用MATLAB语言编写的程序,称为 语言编写的程序 称为M 文件。 文件可以根据调用方式的不 文件。M文件可以根据调用方式的不 同分为两类:命令文件(Script File)和 同分为两类:命令文件 和 函数文件(Function File)。 函数文件 。
相关文档
最新文档