美文网首页Matlab学习资料
第六章 MATLAB 程序设计

第六章 MATLAB 程序设计

作者: 00e6a8fd618f | 来源:发表于2017-05-26 11:36 被阅读44次

第六章 MATLAB 程序设计

MATLAB 有两种工作方式:
一种是交互式的命令行工作方式;
另一种是 M 文件的程序工作方式

6.1 M 文件

用 MATLAB 语言编写的程序,称为 M 文件。
M 文件有两类:命令文件函数文件
命令文件没有输入参数,也不返回参数;对 MATLAB 工作空间中的变量进行操作。
函数文件可以输入参数、返回参数。
本节介绍命令文件

M 文件的建立与编辑

3.2 数据的输入输出

MATLAB 的输入输出方式包括命令窗口的输入输出以及图形界面的输入输出。此外,它还允许对文件进行读写。

Input 函数
调用格式:
A = input(提示信息, 选项);

pause 函数
当程序运行时,为了查看程序的中间结果或观看输出的图形,有时需要暂停程序的执行。这时可以使用 pause 函数,调用格式为:
pause(延迟秒数)

Disp 函数
MATLAB 提供的命令窗口输出函数主要有 disp 函数,调用格式为:
Disp(输出项)

关系及逻辑运算
MATLAB 提供以下的关系判断及逻辑的运算元:

  • <
  • <=
  • >
  • >=
  • ==
  • ~=
  • &
  • |
  • ~

6.3 选择结构

if 语句和 switch 语句

6.4 循环结构

for 语句和 while 语句

6.5 函数文件

函数文件由 function 语句引导,一般格式为:
`function 输出形参表 = 函数名 (输入形参表)
注释说明部分
函数体

6.6 全局变量和局部变量

全局变量会破坏函数对变量的封装,降低程序的可读性。
全局变量名字一般用大写字母表示。



%变量互换
a = 1:9;
b = [11, 12, 13; 14, 15, 16; 17, 18, 19];
c = a; a = b; b = c;
a
b
%变量输入 input
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)]

%选择结构
%if 三角形
A = input('请输入三角形的三条边:');
if A(1) + A(2) > A(3) & A(1) + A(3) > A(2) & A(2) + A(3) > A(1)
    P = (A(1) + A(2) + A(3)) / 2;
    S = sqrt(P*(P-A(1))*(P-A(2))*(P-A(3)));
    disp(S);
else
    disp('不能构成一个三角形')
end
%switch 
num = input('请输入一个数');
switch num
    case -1
        disp('I am a teacher.');
    case 0
        disp('I am a student.');
    case 1 
        disp('You are a teacher.');
    otherwise
        disp('You are a student.');
end

%循环结构
%for 
y = 0; n = 100;
for i = 1:n
     y = y+1/(2*i-1);
end
y
a = 0; b = 3*pi; n = 1000;
h = (b-a) / n;
x=a; s=0; f0=exp(-0.5*x)*sin(x+pi/6);
for i=1:n
    x=x+h;
    f1=exp(-0.5*x)*sin(x+pi/6);
    s=s+(f0+f1)*h/2;
    f0=f1;
end
s
%
s = [0;0;0;0];
a = [12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
    s=s+k;
end
disp(s');
%while
y=0;i=1;
while 1
    f=1/(2*i-1);
    y=y+f;
    if y>3
        break;
    end
    i=i+1;
end
n=i-1
y=y-f
%
A = rand(3);
E=zeros(size(A));
F=eye(size(A));
K=1;
while norm(E+f-3,1)>0
    E=E+F;
    F=A*F/K;
    K=K+1;
end
E
expm(A)
%求[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
%
for i=1:10
    fac(i)=factor(i);
end
fac

相关文章

网友评论

    本文标题:第六章 MATLAB 程序设计

    本文链接:https://www.haomeiwen.com/subject/pwntfxtx.html