目录
1.M文件
1.1 M文件的建立与编辑
- M文件类型:命令文件和函数文件。
- 命令文件:没有输入参数,不返回输出参数。
- 函数文件:可以输入参数,也可以返回输出参数。
- 建立新的M文件:目录窗口File菜单选择New菜单项,选择M-file命令。
- 编辑M文件:从MATLAB命令窗口的file菜单选择open M-file命令。
1.2 命令文件
- 将需要运行的命令编辑到一个命令文件中,然后在 MATLAB命令窗口输入该命令文件的名字,就会顺序执 行命令文件中的命令。
- 建立命令文件以f2c.m保存。
clear; %清除工作空间中的变量
f=input('Input Fahrenheit temperature:');
c = 5*(f-32)/9
切换文件工作目录到你保存的M文件目录下,然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:
Input Fahrenheit temperature:73
c =
22.7778
2.数据的输入和输出
2.1 input函数
- 调用格式:A=input(提示信息,选项);
- 选项可以是一个字符串。
- 示例:求一元二次方程 a 2 + b x + c = 0 a^2+bx+c=0 a2+bx+c=0的根。
a=input('a=?');
b=input('b=?');
c=input('c=?');
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
执行情况如下:
a=?1
b=?1
c=?1
x =
-0.5000 + 0.8660i -0.5000 - 0.8660i
2.2 pause函数
- 暂停程序的执行
- 调用格式:pause(延迟秒数)
- 如果省略延迟时间,直接使用pause,则将暂停程序,直到用 户按任一键后程序继续执行。
2.3 disp函数
- 命令窗口输出函数。
- 调用格式;disp(输出项),输出项是字符串或者矩阵。
- 示例:
A='Hello,MATLAB';
disp(A)
输出为:
Hello,MATLAB
2.4 echo
- echo on指令显示其后所有执行文件的指令。
- echo off指令关闭其后所有执行文件的指令显示。
3.程序设计
程序结构与流程控制语句
- 顺序结构
顺序执行程序模块。 - 条件结构
- if - else - end 语句
- 选择结构
- switch-case-end 语句
- 循环结构
- while语句:
- while<逻辑表达式>
<循环体>
end - for语句:
- for 变量=初值;增量;结束值
程序模块;
end- 循环嵌套
求[100,1000]内的全部素数。
- 循环嵌套
n=0;
for m=100:1000
flag=1; j=m-1;
i=2;
while i<=j & flag
if rem(m,i)==0
flag=0;
end
i=i+1;
end
if flag
n=n+1;
prime(n)=m;
end
end
prime %变量prime存放素数
输出:
prime =
1 至 8 列
101 103 107 109 113 127 131 137
9 至 16 列
139 149 151 157 163 167 173 179
17 至 24 列
181 191 193 197 199 211 223 227
25 至 32 列
229 233 239 241 251 257 263 269
33 至 40 列
271 277 281 283 293 307 311 313
41 至 48 列
317 331 337 347 349 353 359 367
49 至 56 列
373 379 383 389 397 401 409 419
57 至 64 列
421 431 433 439 443 449 457 461
65 至 72 列
463 467 479 487 491 499 503 509
73 至 80 列
521 523 541 547 557 563 569 571
81 至 88 列
577 587 593 599 601 607 613 617
89 至 96 列
619 631 641 643 647 653 659 661
97 至 104 列
673 677 683 691 701 709 719 727
105 至 112 列
733 739 743 751 757 761 769 773
113 至 120 列
787 797 809 811 821 823 827 829
121 至 128 列
839 853 857 859 863 877 881 883
129 至 136 列
887 907 911 919 929 937 941 947
137 至 143 列
953 967 971 977 983 991 997
- 中断语句
- break语句
- continue语句
4.函数文件
4.1 函数文件格式
- 函数文件由function语句引导,其格式为:
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体 - 注:其中函数名的命名规则与变量名相同。输入形参为函数的输 入参数,输出形参为函数的输出参数。当输出形参多于1个时, 则应该用方括号括起来。
- 示例:编写函数文件求小于任意自然数n的 Fibonacci数列各项。
function f=ffib(n)
%用于求Fibonacci数列的函数文件
%f=ffib(n)
%1999年9月30日编
f=[1,1];
i=1;
while f(i)+f(i+1)<n
f(i+2)=f(i)+f(i+1);
i=i+1;
end
输出:
ans =
1 至 3 列
1 1 2
4 至 6 列
3 5 8
7 至 9 列
13 21 34
10 至 12 列
55 89 144
13 至 15 列
233 377 610
16 至 17 列
987 1597
4.2 函数调用
- 函数文件编制好后,就可调用函数进行计算了。
- 调用格式: [输出实参表]=函数名(输入实参表)
- 示例:利用函数的递归调用,求n!。
函数文件factor.m
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n;
end
return;
命令文件main.m
for i=1:10
fac(i)=factor(i);
end
fac
在命令文件main.m中调用函数文件factor.m。
5.全局变量和局部变量
- 全局变量用命令global定义。作用域是这个MATLAB空间。
- 函数文件内部变量是局部的变量。
- 示例:全局变量应用。
函数文件wadd.m,将输入参数加权相加。
function f=wadd(x,y)
%add two variable
global ALPHA BETA
f=ALPHA*x+BETA*y;
命令窗口输入:
global ALPHA BETA
ALPHA=1;
BETA=2;
s=wadd(1,2)
输出:
s =5