搜档网
当前位置:搜档网 › 3140504022 MATLAB平时作业要点

3140504022 MATLAB平时作业要点

3140504022  MATLAB平时作业要点
3140504022  MATLAB平时作业要点

MATLAB程序设计基础

专业班级电科1401

学号3140504022

姓名谢言琴

《MATLAB程序设计基础》平时作业

说明:1-17题为必做题,须分别提交纸质文档及与纸质文档对应的电子文档.doc版。

1.对于每输入的一个百分制成绩,要求输出对应的成绩等级A、B、C、D、E。其中A的

分值在区间[90,100)内;B的分值在区间[80,90)内;C的分值在区间[70,80)内;D的分值在区间[60,70)内;E的分值在区间[0,60)内;要求:

1)要有对输入成绩是否合理的判断:

①输入成绩如果含有小数,只能是“x.5”的形式,其实x为合理的整数。

②成绩必须在百分制范围内。

③如果输入的成绩不合理,应向命令窗口输出报错信息“输入的成绩不合理”

2)用if语句实现题目要求

MATLAB程序代码如下:

x=input('please import results:');%输入分数

if x<0|x>100

disp('Error:wrong data')%显示数据错误

elseif x<=100&x>=90

bank='A' %输出等级为A

elseif x<=89&x>=80

bank='B' %输出等级为B

elseif x<=79&x>70

bank='C' %输出等级为C

elseif x<=69&x>60

bank='D' %输出等级为D

else bank='E' %输出等级为E

end

运行结果如下:

>> Untitled

please import results:123

Error:wrong data

>> Untitled

please import results:96

bank =

A

>> Untitled

please import results:85

bank =

B

>> Untitled

please import results:72

bank =

C

>> Untitled

please import results:63

C

>> Untitled

please import results:6

bank =

E

(3)用switch语句实现题目要求

MATLAB程序代码如下:

c=input('please import results:');%输入分数

switch floor(c/10) %用switch语句实现对分数的求商case{9}

bank='A';

case{8}

bank='B';

case {7}

bank='C';

case {6}

bank='D';

case num2cell(0:5)%表示取整后是0到5

bank='E';

otherwise

bank='输入出错';

end

disp(bank);

运行结果如下:

please import results:123

输入出错

>> Untitled

please import results:95

A

>> Untitled

please import results:86

B

>> Untitled

please import results:75

C

>> Untitled

please import results:65

D

>> Untitled

please import results:3

E

>> Untitled

please import results:-1

2. 设计程序,完成[10,99]之间两位整数的加、减、乘、除四则运算。要求:

1)随机产生区间[10,99]之内的两位随机整数

2)在产生符合要求的随机数后,输入一个运算符号,做相应的运算

3)运算结果显示在命令窗口,其显示类似于“a=x+y=68”的形式。

MATLAB程序代码如下:

y=10+(99-10)*rand %产生10到99之间的随机数

a=round(rand*90)+10;

disp(a)%产生10到99之间的随机数a

b=round(rand*90+10);

disp(b)%产生10到99之间的随机数b

c=input('请输入一个四则运算符号,用单引号括起来');

switch c

case '+'

d=a+b;%做加法运算

case '-'

d=a-b;%做减法运算

case '*'

d=a*b; %做乘法运算

case '/';

d=a/b; %做除法运算

end

d

运行结果如下:

>> Untitled

y =

91.2905

67

19

请输入一个四则运算符号,用单引号括起来'+'

d =

86

>> Untitled

y =

34.7863

59

96

请输入一个四则运算符号,用单引号括起来'-'

d =

-37

>> Untitled

y =

95.8751

24

97

请输入一个四则运算符号,用单引号括起来'*' d =

2328 >> Untitled y =

95.1879 54 82

请输入一个四则运算符号,用单引号括起来'/' d =

0.6585

3. 求下列分段函数的值并绘制函数曲线。

2226,056,1,?+-<≠?

=-+≤≠≠??--?

x x x x y x x x x x x x 且 -30<10,2且 3其他

要求:

1)x 的值以向量的形式从键盘输入。

2)用if 语句实现,分别输出x =﹣5.0,﹣3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 3)自行拟定自变量的取值,绘制该分段函数的二维曲线。 MATLAB 程序代码如下:

function y=myfun(x)%间;建立功能函数myfun,,以便下面调用该函数 if x==2||abs(x)==3||x>=5 y=x.^2-x-1; elseif x<0 y=x.^2+x-6; else

y=x.^2-5*x+6; end

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]; l=length(x); y=zeros(1,1); for k=1:1

y(k)=myfun(x(k));调用功能函数myfun end [x;y] plot(x,y;

运行结果如下:

ans =

-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 -6.2500 11.0000 2.0000 1.0000 -0.2500 5.0000 6.0000 结果截图如下:

图1

4. 分别使用for循环语句和while循环语句找出最小的n值,使得n!>10100,并求出n!。MATLAB程序代码如下:

s=1;

for n=1:100

if s>10100;

n=n-1;

break;

else s=s*n;

end

end

fprintf('n=%d\n' ,n,s)

运行结果如下:

>> Untitled

n=8

n=40320

MATLAB程序代码如下:

s=1;

n=1;

while s<=10100; n=n+1;

s=s*n;

end

fprintf('n=%d\n' ,n,s)

运行结果如下:

>> Untitled

n=8

n=40320

5. 已知

f1=1,n=1

f2=0,n=2

f3=1,n=3

f n=f n-1-2f n-2+f n-3,n>3

求f1 ~ f50中:

1)最大值和最小值及它们的位置、各数之和(最大值给变量MAX,其位置给变量x,

最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。

2)正数、零、负数的个数(依次赋值给变量N_positive,N_zero,N_negative)。

MATLAB程序代码如下:

f(1)=1;

f(2)=0;

f(3)=1;

for n=4:50

f(n)=f(n-1)-2*f(n-2)+f(n-3)

end

[MAX,X]=max(f)%将最大值赋值给MAX,位置给x

[MIN,Y]=min(f)%将最大值赋值给MIN,位置给y

SUM=sum(f)%和赋值给SUM

N_positive=length(find(f>0))%找到正数的个数和位置,赋值给N_positive

N_zero=length(find(f==0))%找到零的个数和位置赋值给N_zero

N_negative=length(find(f<0))%找到负数的个数和位置赋值给N_negative

运行结果如下:

MAX =406631

X =49

MIN = -403795

Y =50

SUM =76861

N_positive =25

N_zero =2

N_negative =23

6. Fibonacci数组的元素满足Fibonacci规则:

a k+2=a k+a k+1,(k=1,2,3,…);且a1= a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素对应的k值以及该元素值。

MATLAB程序代码如下:

a1=1;

a2=1;

i=3;

a3=a1+a2;

while a3<10000;%实现循环求出数组中大于10000的k值和对应的该值

a1=a2;

a2=a3;

a3=a1+a2;

i=i+1;

end

fprintf('i=%d \na(i)=%d \n',i,a3)

fprintf('a(%d)=%d \n',i,a3)%输出i和a3

运行结果如下:

>> Untitled

i=21

a(i)=10946

7. 定义自变量x的取值区间为[﹣5,5],编写一个函数文件,实现绘制函数y=ax3+bx2+cx+d

的曲线,其中给定各系数值分别为

①a=﹣1,b=2,c=﹣5,d=3;

②a=3,b=﹣7,c=1,d=4;

③a=0,b=4,c=0,d=﹣5

要另外编写调用该函数文件的m文件,实现调用。

MATLAB程序代码如下:

function mydraw(a,b,c,d) %建立函数mydraw

x=-5:0.1:5;

y=a*x.^3+b*x.^2+c*x+d;

plot(x,y);

mydraw(-1,2,-5,3)

mydraw(3,-7,1,4)

mydraw(0,4,0,-5)

结果截图如下:

图2系数取第①组的曲图3系数取第②组的曲线

图4系数取第③组的曲线

8. 设计程序,在一个图形窗体中画出函数y=e x和y=logx的特性曲线。其中y=e x中x取值

区间为(﹣2,2),y=logx中x取值区间为(0.1,5)。

要求:

1)要有图例、标题('二维图')、坐标轴标签('x轴数据'和'y轴数据');

2)每条曲线的属性自己设置,但不能全用默认值。

MATLAB程序代码如下:

x1=-2:0.1:2;

x2=0.1:0.1:5;

y2=log(x2);

plot(x1,y1,'r--',x2,y2,'k-d');

title('二维图');

xlabel('x轴数据');

ylabel('y轴数据');

legend('e^x曲线','log(x)曲线'); %设置图例

结果截图如下:

图5函数y=e x和y=logx的特性曲线

9. 采用2行2列子图的方式进行二维图形绘制,要求:

1)自变量x的取值区间为[0,2π]

2)三个函数分别为:y1=sin(x),y2=cos(x),y3=sin(x)+cos(x)

3)在第1幅子图绘制y1的曲线;在第2幅子图绘制y2的曲线;在第3幅子图绘制y3的曲线;在第4幅子图中绘制所有3条曲线

4)对每一幅子图,都要有图例、坐标轴标签;曲线的属性自己设置,不能全用默认值。MATLAB程序代码如下:

x=0:0.1:2.*pi;

y1=sin(x);

y2=cos(x);

y3=sin(x)+cos(x);

subplot(221);

plot(x,y1,'r-p');

legend('sin(x)');

xlabel('横坐标1');

ylabel('纵坐标1');

subplot(222);

plot(x,y2,'go--');

legend('cos(x)');

xlabel('横坐标2');

ylabel('纵坐标2');

subplot(223);

plot(x,y3,'k-d');

legend('sin+cos');

xlabel('横坐标3'); ylabel('纵坐标3'); subplot(224);

plot(x,y1,x,y2,x,y3,'ro-'); legend('所有'); xlabel('横坐标4'); ylabel('纵坐标4'); 结果截图如下:

图6四种二维图

10. 采用1行2列子图的方式进行二维图形绘制,要求:

1)在第1幅子图绘制三维曲线: x ∈[0,20] y=sin(x) z=cos(x)

2)在第2幅子图绘制三维曲面: x ∈[﹣20,20] y ∈[﹣10,10]

4

y 9x z 22-=

3)对每一幅子图,都要有标题、坐标轴标签;曲线的属性自己设置,不能全用默认值。

MATLAB 程序代码如下:

x1=0:0.1:20; y1=sin(x1); z1=cos(x1); x2=(-20:0.1:20); y2=(-10:0.1:10);

[X,Y]=meshgrid(x2,y2); %建立网格线 Z=(X.^2)/9-(Y .^2)/4; subplot(121); plot3(x1,y1,z1,'r'); title('三维曲线'); xlabel('横坐标'); ylabel('纵坐标');

subplot(122); surf(X,Y,Z);

shading interp; %不使用网格线 title('三维曲面'); xlabel('横坐标'); ylabel('纵坐标'); 结果截图如下:

图7二维图形和三维图

11. 已知函数0y x )1y (x 32322=--+,其中x 的取值区间为[﹣2,2],试编程绘制该二维曲线,

要求:要有标题、坐标轴标签,曲线颜色用红色。 MATLAB 程序代码如下:

eleven=ezplot('(x^2+y^2-1).^3-x^2.*y^3',[-2,2]); title('函数(x^2+y^2-1).^3-x^2.*y^3的图形'); set(eleven,'color','r'); %设置eleven 颜色 xlabel('x 轴'); ylabel('y 轴'); 结果截图如下:

图8心形图

12. 已知原始数据pi *4:1:0x =,)5/x exp(*).x sin(y -=,插值点为pi *4:3.0:0xi =,试用4种不同的插值方法进行插值,并在一幅图的4个子图中分别绘出4种插值曲线,并各自注明所使用的插值方法。 MATLAB 程序代码如下: x=0:1:4*pi;

y=sin(x).*exp(-x/5); plot(x,y,'o');

title('样本点所在位置'); 结果截图如下:

图9样本点所在的位置MATLAB程序代码如下:

xi=0:0.3:4*pi;

figure; %新开图形窗口

subplot(221)

y1=interp1(x,y,xi,'nearest');

plot(xi,y1);

title('最近点插值');

subplot(222)

y1=interp1(x,y,xi);

plot(xi,y1);

title('线性插值');

subplot(223)

y1=interp1(x,y,xi,'cubic');

plot(xi,y1);

title('三次立方插值');

subplot(224)

y1=interp1(x,y,xi,'spline');

plot(xi,y1);

title('三次样条插值');

axis tight %根据数据范围自动设置坐标轴取值范围

结果截图如下:

图10四种插值方式

13.考虑表1中的数据:

表1 一周气温温度数据

完成以下功能:

1)将一周的气温温度数据,使用一个矩阵A进行保存。

2)取出周二中午、周四上午、周日中午和夜晚的温度值,组成新的温度值向量。

3)取出矩阵A中的前六个数值,组成新的温度值向量。

4)取出周二、周三、周四及周六的数据,组成新的温度值矩阵。

5)求每天温度的平均值

6)求一周的早晨、中午和夜晚温度的平均值

7)求一周的温度平均值及最高温度及最低温度

MATLAB程序代码如下:

A=[15 15 18 13 13 15 16;20 21 25 19 20 22 25;16 17 12 14 16 18 19];

B1=[A(2,2) A(1,4) A(2,7) A(3,7)];

B2=[A(1:6)];

B3=[A(:,2) A(:,3) A(:,4) A(:,6)];

B4=mean(A); %对列求平均值

B5=mean(A,2); %对行求平均值

B6=mean(B4,2);

B7=max(A(:));

B8=min(A(:));

disp(' 周一周二周三周四周五周六周日');

disp(A)

disp('周二中午、周四上午、周日中午和夜晚的温度值');

disp(B1)

disp('A中的前六个数值');

disp(B2)

disp(' 周二周三周四周六');

disp(B3);

disp('每天温度的平均值');

disp(' 周一周二周三周四周五周六周日'); disp(B4)

disp('一周的早晨、中午和夜晚温度的平均值');

disp(B5)

disp('一周的温度平均值');

disp(B6)

disp('一周的温度最大值');

disp(B7)

disp('一周的温度最小值');

disp(B8)

运行结果如下:

周一周二周三周四周五周六周日

15 15 18 13 13 15 16

20 21 25 19 20 22 25

16 17 12 14 16 18 19

周二中午、周四上午、周日中午和夜晚的温度值

21 13 25 19

A中的前六个数值

15 20 16 15 21 17

周二周三周四周六

15 18 13 15

21 25 19 22

17 12 14 18

每天温度的平均值

周一周二周三周四周五周六周日

17.0000 17.6667 18.3333 15.3333 16.3333 18.3333 20.0000

一周的早晨、中午和夜晚温度的平均值

15.0000

21.7143

16.0000

一周的温度平均值

17.5714

一周的温度最大值

25

一周的温度最小值

12

14.考虑表2中的数据,这是一位举重教练收集的不同性别的举重动员每个年龄的最大举重磅数,据信这三者之间存在着某种函数关系,请估算当前队伍中队员(要求13~20岁每一岁都有)的最大举重磅数。

表2 不同性别的举重动员每个年龄的最大举重磅数

MATLAB程序代码如下:

A=[13 15 17 19 20];

B=[13 14 15 16 17 18 19 20];

M=[270 290 330 350 380];

W=[250 270 310 330 360];

p1=polyfit(A,M,6); %拟合曲线

p2=polyfit(A,W,6);

y1=polyval(p1,B); %计算B处p1的值

y2=polyval(p2,B);

disp('年龄13 14 15 16 17 18 19 20');

disp('男最大举重');

disp(y1)

disp('年龄13 14 15 16 17 18 19 20');

disp('女最大举重');

disp(y2)

运行结果如下:

年龄13 14 15 16 17 18 19 20 男最大举重

Columns 1 through 7

270.0000 272.8572 290.0000 311.9077 330.0000 340.6300 350.0000

Column 8

380.0000

年龄13 14 15 16 17 18 19 20 女最大举重

Columns 1 through 7

250.0000 252.8497 270.0000 291.9110 310.0000 320.6269 330.0000

Column 8

360.0000

15.某乡镇企业2009-2015年的生产利润如表3所示。

表3 过去7年生产利润

要求用多项式拟合法预测出该企业2016年和2017年的利润,并绘出拟合图。

MATLAB程序代码如下:

A=[2009 2010 2011 2012 2013 2014 2015];

B=[70 122 144 152 174 196 202];

C=[2009 2010 2011 2012 2013 2014 2015 2016 2017];

p=polyfit(A,B,10);

y=polyval(p,C);

m=y(8);

n=y(9);

disp('2016年利润(万元)');

disp(m)

disp('2017年利润(万元)');

disp(n)

plot(C,y,'r');

legend('拟合曲线');

运行结果如下:

2016年利润(万元)

204.3160

2017年利润(万元) 202.7162

结果截图如下:

图11拟合曲线

16. 求下列方程组的解。

1)???

?

?=+-=-=+-9

4653532321

31321x x x x x x x x A=[2 -1 3;3 0 -5;4 -1 1];

b=[5;6;9]; B=[A b]; ra=rank(A) rb=rank(B)

format rat %用有理数形式现实 R=rref(B)

运行结果如下: >> Untitled2 ra =3

rb=3%rank(A)=rank(B)=未知数个数=3,方程组有唯一解 R =

1 0 0

2 0 1 0 -1 0 0 1 0 >> x=inv(A)*b x =

2 -1 0

2)???

??=--+=+--=+-0

895443353644321

4321431x x x x x x x x x x x

A=[4 0 -6 3;3 -1 -3 4;1 5 -9 -8]; b=[5;4;0]; B=[A b]; ra=rank(A) rb=rank(B) format rat R=rref(B)

运行结果如下:

>> Untitled2 ra = 2

rb = 2 %r ank(A)=rank(B)=2<未知数个数=4,方程组有无数解

R =

1 0 -3/

2 3/4 5/4 0 1 -3/2 -7/4 -1/4 0 0 0 0 0 令x3=k1,x4=k 2,可得方程组的通解为:

17.已知用来描述系统的微分方程为

)()(5)(t u t x t x

+-= 其中,)(t u 是幅值为1、频率为1rad/s 的方波信号,试建立该系统的SIMULINK 模型(如图1所示,须理解为什么是这样的模型)并进行仿真,给出仿真结果。

图12

MATLAB复习知识点汇总

MATLAB 复习 1、实现符号函数 运算功能的函数m 文件为: function y=sgn(x) if x<0 y1=-1; elseif x==0 y1=0; else y1=1; end y=y1; 2、求满足1+2+3+…n<100的最大正整数n 的MATLAB 程序为: sum=0;n=0; while sum<100 n=n+1; sum=sum+n; end 1,0,sgn()0,0, 1,0x y x x x >?? ===??-

sum=sum-n; n=n-1; n,sum 3、m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File),两种文件的扩展名都是m。 4、反馈控制系统品质要求:稳定性、准确性、快速性 5、按不同系统的特征方程式,可将自动控制系统分为线性系统和非线性系统。 6、MATLAB控制相关的工具箱 (1)控制系统工具箱 (2)系统辨识工具箱 (3)模型预测控制工具箱 (4)鲁棒控制工具箱 (5)神经网络工具箱 7、MATLAB系统的构成 (1)开发环境(2)数学函数库(3)MATLAB语言(4)图形处理系统(5)应用程序接口 8、常用工具箱 (1)控制类工具箱(2)应用数学类工具箱(3)信号处理类工具箱(4)其他常用工具箱 9、MATLAB语句形式:>>变量=表达式 10、MATLAB常用命令 quit 关闭MATLAB

exit 关闭MATLAB clc 清除MATLAB 命令窗口中的所有显示内容 clear 清除工作空间中保存的所有变量 11、MATLAB 基本数据类型:双精度数组、字符串数组、元胞数组、结构数组 12、矩阵的创建 (1)直接输入法(2)通过数据文件创建矩阵(3)通过m 文件创建矩阵(4)通过函数创建矩阵(5)冒号法 13、冒号法 [1]冒号法构造向量 冒号表达式的一般格式为:向量名=初值:步长:终值 [2]冒号法构造矩阵 一般格式为: A(:,j ):表示矩阵A 的第j 列; A(i ,:):表示矩阵A 的第i 行。 A(i,j)表示取矩阵A 的第i 行第j 列交叉位置的元素 14、矩阵的运算 /(矩阵的右除)或\(矩阵的左除) A -1=inv(A) 矩阵的逆 15、求下面方程组的根 1231231 2323532255316 x x x x x x x x x +-=?? -+=??--=?

matlab的RBF-BP神经网络讲义

matlab的RBF BP神经网络讲义 一、RBF神经网络 1985年,Powell提出了多变量插值的径向基函数(Radical Basis Function,RBF)方法, 1988年,Moody和Darken提出了一种神经网络结构,即RBF神经网络。 RBF网络是一种三层前向网络,其基本思想是:(1)用RBF作为隐单元的“基”构成隐含层空间,将输入矢量直接(即不需要通过权连接)映射到隐空间(2)当RBF的中心点确定后,映射关系也就确定(3)隐含层空间到输出空间的映射是线性的。 newrb()函数 功能 建立一个径向基神经网络 格式 net = newrb(P,T,GOAL,SPREAD,MN,DF) 说明 P为输入向量,T为目标向量,GOAL为圴方误差,默认为0,SPREAD为径向基函数的分布密度,默认为1,MN为神经元的最大数目,DF为两次显示之间所添加的神经元神经元数目。 例子: 设[P,T]是训练样本,[X,Y]是测试样本; net=newrb(P,T,err_goal,spread); %建立网络 q=sim(net,p); e=q-T; plot(p,q); %画训练误差曲线 q=sim(net,X); e=q-Y; plot(X,q); %画测试误差曲线 二、BP神经网络 训练前馈网络的第一步是建立网络对象。函数newff()建立一个可训练的前馈网络。这需要4个输入参数。 第一个参数是一个Rx2的矩阵以定义R个输入向量的最小值和最大值。 第二个参数是一个设定每层神经元个数的数组。 第三个参数是包含每层用到的传递函数名称的细胞数组。 最后一个参数是用到的训练函数的名称。 举个例子,下面命令将创建一个二层网络。它的输入是两个元素的向量,第一层有三个神经元(3),第二层有一个神经元(1)。 第一层的传递函数是tan-sigmoid,输出层的传递函数是linear。 输入向量的第一个元素的范围是-1到2[-1 2],输入向量的第二个元素的范围是0到5[0 5],训练函数是traingd。 net=newff([-1 2; 0 5],[3,1],{'tansig','purelin'},'traingd'); 这个命令建立了网络对象并且初始化了网络权重和偏置,因此网络就可以进行训练了。 我们可能要多次重新初始化权重或者进行自定义的初始化。 下面就是初始化的详细步骤。 在训练前馈网络之前,权重和偏置必须被初始化。初始化权重和偏置的工作用命令init来实

MatLab讲义

2011年数学中国国赛培训讲座 Matlab的基础及数学建模中的应用 周吕文:zhou.lv.wen@https://www.sodocs.net/doc/c112408577.html, 大连大学数学建模工作室&中国科学院力学研究所 2011年7月

第一部分 MatLab基础 1 简单介绍 MATLAB是Matrix Laboratory“矩阵实验室”的缩写。MatLab语言是由美国的Clever Moler博士于1980年开发的,初衷是为解决“线性代数”课程的矩阵运算问题。1984年由美国 MathWorks公司推向市场,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。 在数学建模竞赛中,由于只有短短的三到四天,而论文的评判不仅注重计算的结果更注重模型的创造性等很多方面,因此比赛中把大量的时间花费在编写和调试程序上只会喧宾夺主,是很不值得的。使用MATLAB 可以很大程度上的方便计算、节省时间,使我们将精力更多的放在模型的完善上,所以是较为理想的。 这里快速的介绍一下MATLAB与数学建模相关的基础知识,并列举一些简单的例子,很多例子都是源于国内外的数学建模赛题。希望能帮助同学们在短时间内方便、快捷的使用MATLAB 解决数学建模中的问题。当然要想学好MatLab更多的依赖自主学习,一个很好的学习MatLab的方法是查看MatLab的帮助文档: z如果你知道一个函数名,想了解它的用法,你可以用'help'命令得到它的帮助文档:>>help functionname z如果你了解含某个关键词的函数,你可以用'lookfor'命令得到相关的函数: 2 基本命令与函数 基本运算 z变量的赋值 实数赋值>> x=5; 复数赋值>> x=5+10j; (或>>x=5+10i) z向量的一般值方法 行向量赋值:>>x=[1 2 3]; (或x=[1, 2 ,3]) 列向量赋值:>>y=[1;2;3]; 矩阵的赋值:>>x=[1 2 3; 4 5 6; 7 8 9]; z常用矩阵(zeros ones eye) n行m列0矩阵:>>x=zeros(n,m); n行m列1矩阵:>>x=ones(n,m); n 阶的单位阵:>>y=eye(n); z矩阵行列操作 >> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9 >>x=A(1,3) %取第一行的第三列元素 x= 3

天津大学matlab讲义-应用基础第一章

MATLAB应用基础 赵国瑞 天津大学电子信息工程学院 计算机基础教学部 2000.3 制作

概述 MATLAB是世界流行的优秀科技应用软件之一。具有功能强大(数值计算、符号计算、图形生成、文本处理及多种专业工具箱)、界面友好,可二次开发等特点。 自1984年由美国MathWorks公司推向市场以来,先后发布了多个版本,1993年发布4.0版,1996年发布5.0版,1999年发布5.3版。目前发布的为6.5版。 MATLAB有专业和学生版之分。二者功能相同,但计算规模和计算难度有差别。 在国内外,已有许多高等院校把MATLAB列为本科生、研究生必须掌握的基本技能。我校自1999年列为研究生选修课程。而且有很多教师、研究生把它作为进行科研的重要工具。 国内关于MATLAB的书籍很多,如: 《精通MATLAB 5.3》张志涌等编著北京航空航天大学出版社,2000.8 《科学计算语言MATLAB简明教程》杜藏等编著南开大学出版社,1999.6 《精通MATLAB 5》张宜华编写清华大学出版社,1999.6 《精通MATLAB--综合辅导与指南》 Duane Hanselman、Bruce Littlefield编著李人厚等译较西安交通大学出版社,1998.1 等等 本课程主要介绍MATLAB 5.3的基本功能和基础知识。至于其包含的多种工具箱,如仿真工具箱、解非线性方程(组)工具箱、优化工具箱等,应通过本学习后,结合各专业自己进一步学习和使用。 第1章MATLAB基础 1.1 源文件(M-文件) 分为两类:函数文件和非函数文件。 都用扩展名.M 1.1.1函数文件 格式1(无返回值函数) function函数名(输入表) %称为函数头 函数体 例如: function box(opt_box); %BOX Axis box. % BOX ON adds a box to the current axes. % BOX OFF takes if off. % BOX, by itself, toggles the box state. % % BOX sets the Box property of the current axes. % % See also GRID, AXES. % Copyright (c) 1984-98 by The MathWorks, Inc. % $Revision: 1.5 $ $Date: 1997/11/21 23:32:59 $

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

MATLAB讲义

第一章基础准备及入门 什么是MATLAB? MATLAB是MathWorks公司于1984年推出的数学软件,是一种用于科学工程计算的高效率的高级语言。MATLAB最初作为矩阵实验室(Matrix Laboratory),主要向用户提供一套非常完善的矩阵运算命令。随着数值运算的演变,它逐渐发展成为各种系统仿真、数字信号处理、科学可是化的通用标准语言。 在科学研究和工程应用的过程中,往往需要大量的数学计算,传统的纸笔和计算机已经不能从根本上满足海量计算的要求,一些技术人员尝试使用Basic,Fortran,C\C++等语言编写程序来减轻工作量。但编程不仅需要掌握所用语言的语法,还需要对相关算法进行深入分析,这对大多数科学工作者而言有一定的难度。与这些语言相比, MATLAB的语法更简单,更贴近人的思维方式。用MATLAB编写程序,犹如在一张演算纸上排列公式和求解问题一样高效率,因此被称为“科学便笺式”的科学工程计算语言。 MATLAB由主包和功能各异的工具箱组成,其基本数据结构是矩阵。正如其名“矩阵实验室”,MATLAB起初主要是用来进行矩阵运算。经过MathWorks 公司的不断完善,时至今日,MATLAB已经发展成为适合多学科、多工作平台的功能强大的大型软件。 本章有两个目的:一是讲述MATLAB正常运行所必须具备的基础条件;二是简明系统地介绍高度集成的Desktop操作桌面的功能和使用方法。 本章的前两节分别讲述:MATLAB的正确安装方法和MATLAB 环境的启动。因为指令窗是MATLAB最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算例讲述指令窗的基本操作方法和规则。这部分内容几乎对MATLAB各种版本都适用。 MATLAB6.x 不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互式工作界面。了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半功倍地利用MATLAB去完成各种学习和研究。为此,本章特设几节用于专门介绍最常用的交互界面:历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、M文件编辑/调试器、及帮助导航/浏览器。 本章是根据MATLAB6.5版编写的,但大部分内容也适用于其他6.x版。 1.1M ATLAB的安装和内容选择

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

Matlab入门基础知识整理

MATLAB基础知识 MATLAB的主要功能 1.数值计算和符号计算功能 例如,求解线性方程组 在MATLAB命令窗口输入命令: a=[2,3,-1;3,-5,3;6,3,-8]; b=[7;8;9]; x=inv(a)*b 也可以通过符号计算来解此方程 syms x1 x2 x3 [x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9) 2.绘图功能 例如,分别绘制函数y=300sinx/x和y=x2的曲线 x=-20:0.1:20; plot(x,300*sin(x)./x,':',x,x.^2); 3.程序设计语言功能 MATLAB是解释性语言,程序执行速度较慢,而且不能脱离MATLAB环境而独立运行。MathWorks公司提供了将MATLAB源程序编译为独立于MATLAB集成环境运行的EXE文件以及将MATLAB程序转化为C语言程序的编译器。4.扩展功能 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 基本部分构成了MATLAB的核心内容,也是使用和构造工具箱的基础。 工具箱扩展了MATLAB的功能。 功能性工具箱 学科性工具箱 MATLAB的集成开发环境 命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果。一般来说,一个命令行输入一条命令,命令行以回车或分号结束 但一个命令行也可以输入若干条命令,各命令之间以逗号或分号隔开 如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如: z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+ … 1/(1*2*3*4*5) 工作空间(Workspace)是MATLAB用于存储各种变量的内存空间。 当前目录(Current Directory)是指MATLAB运行时的工作目录,只有在当前目录下的文件、函数才可以被运行或调用。 如果没有特殊指明,数据文件也将存放在当前目录下。 命令历史窗口 自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。 MATLAB的帮助功能 进入MATLAB帮助界面可以通过以下方法。 ●单击MATLAB主窗口工具栏中的Help按钮。

matlab经典作图

二维图形的绘制 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐 标系,出直角坐标系外,还可以采用对数坐标系、极坐标。数据点可以用向量或矩阵形式给出,类型可以是实型或复型。二维图形输出,利用MATLAB勺二维绘图函数可以很容易作出需要的各种图形。 plot 函用于绘制直角坐标的二维曲线。使用方plot(x,y,linespeci),plot(x,y) 先描出点(x(i) , y(i)),然后用直线依次相连, 其中参数linespeci指明了线条的类型,标记符号和画线用的颜色。lot是绘制二维曲线的基本命令,但在使用此函数之前,我们需先定义曲线上每一点的x 及y坐标若要在同一个画面上画出多条曲线,只需将坐标对依次放入plot函数 即可。 以下各例题中的程序都是在MATLAB?辑器中函数图象的绘制: 先是简单的一次函数图像的绘制;简单的一次函数在数学图像绘制中是比较简单的,在MATLA语言中用plot函数就能实现。 问题1,简单的一次函数y=3x的函数图像。 程序如下: x=0:1:10; %生成一个从0到10的步长为1的行向量 y=3*x; %变量y的表达式 plot(x,y) %生成二维图形 运行结果如图1所示。 图1 y=3x 的图形 有时在数学中我们要把三角函数图像同时绘制出来,对它们的周期,极值等函数性质进行比较,在数学中我们自己很难解决,但是matlab中的图形窗口分 割函数一subplot就能够实现。其调用格式为:subplot (m,n,p )。下面我们就用matlab 中的subplot函数进行窗口风隔,绘制同一变量的各种三角函数图象。 问题2,在一个图形窗口中以子图形式同时绘制正弦,余弦,正切,余切曲线。 程序如下: x=li nspace(0,2*pi,600; %x的取值范围及步长 y=sin(x); %正弦函数的值给y z=cos(x); %余弦函数的值赋给z t=sin(x)./(cos(x)+eps); %正切函数赋变量t ct=cos(x)./(sin(x)+eps); %与其函数赋变量ct

Matlab仿真常用知识及参考程序

实验一 三、 5.设计M 文件计算: x=0:0.1:10 当sum>1000时停止运算,并显示求和结果及计算次数。 参考程序: x=0:0.1:10; i=1; sum=x(i)*x(i)-2*x(i); while(sum<=1000) i=i+1; sum=sum+x(i)*x(i)-2*x(i); end if(sum>1000) sum=sum-x(i)*x(i)+2*x(i); i=i-1; end sum i 实验二 二、6、编写验证魔方矩阵的函数文件,输出要求如下: (1) 如果输入矩阵的维数小于3,输出显示’error’ (2) 如果输入矩阵的不是方阵,输出显示’the size of matrix X must be N-by-N matrix’ (3) 显示行、列和及其对角线求和后的值,并判断其和是否相同。若不同,显示‘No ’,相同显示‘Yes ’。 参考程序: function mofang_test(data) [Row,Com]=size(data); dimen=min(Row,Com); if(dimen<3) msgbox('error','Warning'); elseif(Row~=Com) msgbox('the size of matrix X must be N-by-N matrix','Warning'); else )x 2x (sum i 1000i 2 i -=∑=

j=Com:-1:1; SumRC=0; SumCR=0; for i=1:Row SumRC=SumRC+data(i,i); SumCR=SumCR+data(j(i),i); end if( SumRC~=SumCR) msgbox('No-1','Sorry'); else SumRow=zeros(Row); for i=1:Row for j=1:Com SumRow(i)=SumRow(i)+data(i,j); end end SumCom=zeros(Com); for j=1:Com for i=1:Row SumCom(j)=SumCom(j)+data(i,j); end end Value=SumRow(1); flag=0; for i=1:Row if(Value~=SumRow(i)) msgbox('No-2','Sorry'); flag=1; break; end end if(flag~=1) for i=1:Com if(Value~=SumCom(i)) msgbox('No-2','Sorry'); flag=1; break; end end end if(flag==0) msgbox('Yes','Prosit'); end end

实验二 MATLAB基础知识(二)

Experiment 1. Fundamental Knowledge of Matlab (II) 【Experimental Purposes】 1、熟悉并掌握MATLAB的工作环境。 2、运行简单命令,实现数组及矩阵的输入输出,了解在MATLAB下如何绘图。【Experimental Principle】 1. Vectors Let's start off by creating something simple, like a vector. Enter each element of the vector (separated by a space) between brackets, and set it equal to a variable. For example, to create the vector a, enter into the MATLAB command window (you can "copy" and "paste" from your browser into MATLAB to make it easy): a = [1 2 3 4 5 6 9 8 7] MATLAB should return: a = 1 2 3 4 5 6 9 8 7 To generate a series that does not use the default of incrementing by 1, specify an additional value with the colon operator (first:step:last). In between the starting and ending value is a step value that tells MATLAB how much to increment (or decrement, if step is negative) between each number it generates. To generate a vector with elements between 0 and 20, incrementing by 2(this method is frequently used to create a time vector), use t = 0:2:20 t = 0 2 4 6 8 10 12 14 16 18 20 Manipulating vectors is almost as easy as creating them. First, suppose you would like to add 2 to each of the elements in vector 'a'. The equation for that looks like: b = a + 2 b = 3 4 5 6 7 8 11 10 9 Now suppose, you would like to add two vectors together. If the two vectors are the same length, it is easy. Simply add the two as shown below: c = a + b c = 4 6 8 10 12 14 20 18 16 Subtraction of vectors of the same length works exactly the same way. MATLAB sometimes stores such a list in a matrix with just one row, and other times in a matrix with just one column. In the first instance, such a 1-row matrix is called a row-vector; in the

MATLAB作图大全 各种作图函数

(Scientific visualization)。本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及存档。 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线: close all; x=linspace(0, 2*pi, 100); % 100个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); ==================================================== 小整理:MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 ==================================================== 若要画出多条曲线,只需将座标对依次放入plot函数即可: plot(x, sin(x), x, cos(x)); 若要改变颜色,在座标对后面加上相关字串即可: plot(x, sin(x), 'c', x, cos(x), 'g'); 若要同时改变颜色及图线型态(Line style),也是在座标对后面加上相 关字串即可: plot(x, sin(x), 'co', x, cos(x), 'g*'); ==================================================== 小整理:plot绘图函数的叁数 字元颜色字元图线型态 y 黄色 . 点 k 黑色o 圆 w 白色x x b 蓝色+ + g 绿色* * r 红色- 实线 c 亮青色: 点线 m 锰紫色-. 点虚线 -- 虚线 ==================================================== 图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]); 此外,MATLAB也可对图形加上各种注解与处理: xlabel('Input Value'); % x轴注解 ylabel('Function Value'); % y轴注解 title('Two Trigonometric Functions'); % 图形标题 legend('y = sin(x)','y = cos(x)'); % 图形注解 grid on; % 显示格线

Matlab经典案例

1、三维曲线 >> t=0:pi/50:10*pi; >> plot3(sin(2*t),cos(2*t),t) >> axis square >> grid on 2、一窗口多图形 >> t=-2*pi:0.01:2*pi; >> subplot(3,2,1) >> plot(t,sin(t)) >> subplot(3,2,2) >> plot(t,cos(t)) >> subplot(3,2,3) >> plot(t,tan(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,4) >> plot(t,cot(t)) >> axis([-pi pi -100 100]) >> subplot(3,2,5) >> plot(t,atan(t)) >> subplot(3,2,6) >> plot(t,acot(t)) 3、图形样式、标注、题字(也可以利用菜单直接 Insert) >> x=0:pi/20:2*pi; >> plot(x,sin(x),'b-.') >> hold on >> plot(x,cos(x),'r--') >> hold on >> plot(x,sin(x)-1,'g:')

>> hold on >> plot(x,cos(x)-1) >> xlabel('x'); >> xlabel('x轴'); >> ylabel('y轴'); >> title('图形样式、标注等'); >> text(pi,sin(pi),'x=\pi'); >> legend('sin(x)','cos(x)','sin(x)-1','cos(x)-1'); >> [x1,y1]=ginput(1) %利用鼠标定位查找线上某点的值x1 = 2.0893 y1 = -0.5000 >> gtext('x=2.5') %鼠标定位放置所需的值在线上 4、 >> fplot('[sin(x),cos(x),sqrt(x)-1]',[0 2*pi]) M文件:myfun.m 内容如下: function y=myfun(x) y(:,1)=sin(x); y(:,2)=cos(x); y(:,3)=x^(1/2)-1; 再运行:>> fplot('myfun',[0 2*pi]) 同样可以得到右图 5、 >> [x,y]=fplot('sin',[0 2*pi]); >> [x1,y1]=fplot('cos',[0 2*pi]); >> plot(x,y,'-r',x1,y1,'-.k') >> legend('y=sinx','y=cosx') 6、

matlab常用函数表

若要查看最新内容,请点击此处访问英文页面。MATLAB 函数 按字母顺序排列的列表按类别语言基础知识 输入命令 ans最近计算的答案 clc清除命令行窗口 diary将命令行窗口文本保存到文件中 format设置命令行窗口输出显示格式 home发送光标复位 iskeyword确定输入是否为 MATLAB 关键字 more控制命令行窗口分页输出 矩阵和数组 数组的创建和串联 accumarray使用累加构造数组 blkdiag根据输入参数构造分块对角矩阵 diag创建对角矩阵或获取矩阵的对角元素 eye单位矩阵 false逻辑 0(假) freqspace频率响应的频率间距 linspace生成线性间距矢量 logspace生成对数间距矢量 meshgrid二维和三维空间中的矩形网格 ndgrid N 维空间中的矩形网格 ones创建全部为 1 的数组 rand均匀分布的随机数 true逻辑值 1(真) zeros创建全零数组 cat沿指定维度串联数组 horzcat水平串联数组 vertcat垂直串联数组 索引 colon创建矢量、数组下标和 for 循环迭代

end终止代码块或指示最大数组索引ind2sub线性索引的下标 sub2ind将下标转换为线性索引 数组维度 length最大数组维度的长度ndims数组维度数目 numel数组元素的数目 size数组维度 height表行数 width表的变量数 iscolumn确定输入是否为列矢量isempty确定数组是否为空ismatrix确定输入是否为矩阵 isrow确定输入是否为行矢量isscalar确定输入是否为标量isvector确定输入是否为矢量 数组排序和调整 blkdiag根据输入参数构造分块对角矩阵circshift循环偏移数组ctranspose复共轭转置 diag创建对角矩阵或获取矩阵的对角元素flip翻转元素顺序 fliplr将数组从左向右翻转 flipud将数组从上向下翻转ipermute N 维数组的逆置换维度permute重新排列 N 维数组的维度repelem重复数组元素副本repmat重复数组副本 reshape重新排列数组 rot90将数组旋转 90 度shiftdim移动维度 issorted确定集元素是否处于排序顺序sort对数组元素排序sortrows对数组行排序squeeze删除单一维度transpose转置矢量或矩阵vectorize矢量化表达式

matlab讲义要点

前期知识:高等数学,机械原理,液压传动,控制原理 学习目标:了解基本原理、掌握基本应用、熟练使用matlab 、精通机械工程的建模和仿真 本课计划:课堂学习、课后练习、 任务:要看课堂笔记 引例:斐波纳西数列的递推公式为)2()1()(--+=n n n F F F ,通项表达式是什么? 高等数学上册第48页。斐波纳西数列在优化设计和股票分析中有用处。 第1章 了解Matlab 本章要求:了解Matlab 的功能、组成 第1节 Matlab 的界面 1.命令窗口:输入命令和显示运行结果和寻求帮助的窗口。 第1个例子求不定积分 问题:在编写代码时不能输入或者不能显示汉字 解决办法:将use custom font 换成use desktop font

先定义一个符号变量x syms x 设2 11 )(x x f += 求不定积分 ?dx x f )( matlab 求解:int(1/(1+x .^2)) 详见l1_bdjf.m 最重要的问题一:工作路径 查看当前工作路径的命令是 pwd matlab 默认的路径为安装好的目录下work ,为了需要我们需要改换路径。 改换路径的方法有:(1)采用DOS 命令 mkdir('根目录名称','新目录名称') 例:mkdir('d:\','mywork') 如果d 盘下没有mywork 即创建,如有就会给出警告。 进入新建文件夹 cd d:\mywork (2)采用matlab 命令 editpath ,pathtool (3)通过matlab 界面 [file]菜单->set path 难点:我想将打开MATLAB 时的默认工作路径改为F:\Program\MATLAB\WorkSpace\ ,只需要在原来的默认路径(bin)下创建一个名为startup.m 的文件,内容为相对路径 cd ..\..\WorkSpace\ 或绝对路径 cd F:\Program\MATLAB\WorkSpace\ 即可。再次打开MA TLAB 时便会自动执行startup.m 文件,将工作路径转至WorkSpace 下。 最重要的问题二:工作路径设置不能设置在有汉字的目录下或汉字文件夹,不支持汉字运算。 汉字用的是Unicode 编码一个字符占两个字节,字母用的是ASC Ⅱ编码,一个字母占一个字节。到2008版才能处理汉字。 初学者容易出现的错误就是把别人的程序拷在带汉字的文件夹下,运行出现错误。 如果我们已知某个文件名,但忘了在哪个文件夹下,可以用which 命令如which FUN what 命令:M-files in the current directory 思考题:what 和dir 的区别? 2.工作空间:显示数据的变量信息,包括变量名、字节大小、变量类型等。 输入 load wind 和load cities 加载了后缀为mat 的wind 和cities 数据文件 在命令窗口输入who 就可以列出空间的变量 在命令窗口输入whos 可以列出名称、大小和类型 whos -file 文件名.mat 可以查看加载前的数据信息。 3.历史记录: 显示所有在命令窗口输入的执行过的命令,清除历史的方法有两种

matlab讲义

2.3终值及其应用 2.3.1终值的概念 终值是与现值相对的概念,是指当前的一项现金流在未来某个时刻的价值。在求终值问题时应该考虑单利和复利的问题,一般如果没有特别的说明则都是按照复利(离散复利)进行计算。 在复利计息的情况下,当前的现金流PV在利率为r时到第t期期末的终值为: t FV) = 1(+ r PV 2.3.2终值的计算 在Matlab中,用来计算现金流的终值的函数有fvfix和fvvar两个。同样,-fix函数用来计算规则现金流的终值;而-var函数则用来计算不规则现金流的终值。 【例2.9】一投资者的储蓄账户初始余额为$1500,在随后的10年中,每月末都会收到$200并存入该账户,银行的年利率为9%。试计算其到期时的价值。 通过执行fvfix函数命令: FutureVal = fvfix(Rate, NumPeriods, Payment, PresentVal, Due) 即可计算出该固定收入现金流的的终值。 变量解释: Rate:周期性收支的利息率,以小数的形式输入; NumPeriods:周期性收支的次数; Payment:每期收支的现金流数额; PresentVal:初始余额 Due:收支被预定或确定的时间:0表示在期末收支(默认值),1表示在期初收支(任选)。 输入命令: >>FutureVal = fvfix(0.09/12, 12*10, 200, 1500, 0) 输出结果: FutureVal = 42379.89 即该现金流到期时的价值为42379.89$。 【例2.10】设某投资者期初投资为$10,000,在随后的5年投资期中每年产生的收入流依次为$2000、$1500、$3000、$3800、$5000,年利率为8%。试计算该现金流到期时的价值。 通过执行fvvar函数命令: FutureVal = fvvar(CashFlow, Rate, IrrCFDates) 即可求出这个规则(周期性的)现金流的终值。 输入命令: >>FutureVal = fvvar([-10000 2000 1500 3000 3800 5000], 0.08) 输出结果: FutureVal = 2520.47 即该现金流到期时的价值为2520.47$。 如果期初投资的$10,000产生的是一个不规则的现金流(如下所示),则计算时要将期初的投资和各个现金流发生的日期也考虑进去。利率为9%。

天津大学matlab讲义-应用基础第二章

第2章MATLAB程序设计 MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。 2.1 顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。 2.1.1 表达式语句 格式: 表达式,%显示表达式值 表达式;%不显示表达式值 表达式%显示表达式值 如: x + y, sin(x); –5 最后的表达式值暂保存在变量ans中。 2.1.2 赋值语句 格式: v =表达式,%结果送v并显示v v =表达式;%结果送v不显示v v =表达式%结果送v并显示v 2.1.3 空语句 格式:

, ; 2.1.4 输入语句 1、input语句(实际上是函数) 格式1: input(提示字符串) 功能: 显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式 格式2: input(提示字符串,'s') 功能: 显示提示字符串,并把输入视为字符串 2、yesinput语句 格式: yesinput(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。 如: t=yesinput('指定线的颜色',… 'red','red|blue|green') 运行结果如下: 指定线的颜色(red):yellow %不在值内 指定线的颜色(red):blue %重输 t = blue x=yesinput('输入元素个数',10,[1,20]) 运行结果如下: 输入元素个数(10): x = 10 3、Keyboard语句 格式: Keyboard 功能: 暂停M-文件的执行,并等待用户从键盘输入命令以查看或改变变量的值,直到输入return命令而返回相应的M-文件继续执行。本语句用于调试M-文件。 4、pause语句 格式1: pause 功能:暂停,敲下任一键继续 格式2: pause(n)

相关主题