Matlab——程序设计

M文件

 我们之前所做的运算————> 算式不太长,或想以交谈式方式进行运算

如果算式很长或是需要一再执行的算式————> 采用M文件的方式

【将指令及算式写成巨集程式然后储存成一个特别的文档,其扩展名是m】

 编辑并运行M文件脚本的步骤

1. 新建脚本

2.输入程序

x=linspace(0,2*pi,20);
y=sin(x);
plot(x,y,'r+')
title('2D plot')

3.保存+命名

ctrl+s 保存

 

 4.运行【使xxx.m成为当前目录(系统默认路径),或该目录在MATLAB的搜索路径上————> 点击运行图标后,点击“添加到路径”即可】

 

运行时,可以直接点击上方图标,也可以在命令行窗口键入"xxx"

 

 

 

 

 实例:计算一个球的体积,保存为area.m

r = input('Type radius 输入半径:');
Area=pi*r^2;
volume=(4/3)*pi*r^3;
fprintf('半径 The radius is %12.5f\n',r)
fprintf('面积 The area of a circle is %12.5f\n',Area)
fprintf('体积 The volume of a sphere is %12.5f\n',volume)

 

 

 

 M文件函数

 

 

funl.m文件

function Y = funl(x)
Y = (x^3 - 2.*x^2 +x - 6.3) / (x^2 + 0.05*x - 3.14);

命令行窗口:
funl(1)*funl(2)+funl(3)*funl(3)

 

 例:计算阶乘函数 fact.m

function output = fact(n)
if n == 1
output = 1;
return;
end
output = n*fact(n-1);

 

 控制流

 

 

 

>> for i = 1:10
x(i) = i;
end
>> x

x =

1 至 9 列

1 2 3 4 5 6 7 8 9

10 列

10

>> for i = 1:3
i
end

i =

     1


i =

     2


i =

     3

 

 

>> n=0:1:10;
for i =1:11
for j = 1:11
y(i) = sin(n(i));
n(j) = n(j) * 10;
end
end
>> y

y =

  150   -0.5064    0.9300   -0.8027   -0.1425

  610-0.9765   -0.5118    0.8586   -0.9957    0.9917

  11150.9287   -0.4759   -0.7357   -0.9158   -0.9966

  1620-0.9694   -0.8372   -0.6142   -0.3247   -0.0000

>> n

n =

   1.0e+12 *

  150    0.1000    0.2000    0.3000    0.4000

  6100.5000    0.6000    0.7000    0.8000    0.9000

  111.0000
y & n

>> num =0;EPS=1;
>> while(1+EPS)>1
EPS = EPS/2;
num = num +1;
end
>> num

num =

    53

>> EPS

EPS =

   1.1102e-16

 

 

>> x = zeros(1,6);%x是一个1*6的0矩阵
>> i = 1;
>> while i <= 6
x(i) = 1/i;
i = i +1;
end
>> x

x =

  151.0000    0.5000    0.3333    0.2500    0.2000

  60.1667

 

 

 

 

>> a(1) = 1;a(2) = 1;i=2;
>> while a(i) <= 10000
a(i+1) = a(i-1)+a(i);
i = i+1;
end
>> i

i =

    21

>> a(i)

ans =

       10946

 

 

 

>> a = 2;
>> if a>1
a = a+1;
end
>> a

a =

     3

----------------------------------------------------

 

 

----------------------------------------------------

 

 

>> n = 100;a = ones(1,n);
>> for i = 3:n
a(i) = a(i-1)+a(i-2);
if a(i) >= 10000
a(i),
break;
end;
end,

ans =

       10946

>> i

i =

    21

 

 输入输出语句

 

错误消息显示命令

 

 

posted @ 2019-05-19 11:19  远征i  阅读(553)  评论(0编辑  收藏  举报