MATLAB上机答案
一 熟悉Matlab工作环境
1、熟悉Matlab的5个基本窗口
思考题:
(1)变量如何声明,变量名须遵守什么规则、是否区分大小写。
答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:
变量名必须以字母开头,只能由字母、数字或下划线组成。
变量名区分大小写。
变量名不能超过63个字符。
关键字不能作为变量名。
最好不要用特殊常量作为变量名。
(2)试说明分号、逗号、冒号的用法。
分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。
逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。
冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。
(3)linspace()称为“线性等分”函数,说明它的用法。
LINSPACE Linearly spaced vector. 线性等分函数
LINSPACE(X1, X2) generates a row vector of 100 linearly
equally spaced points between X1 and X2.
以X1为首元素,X2为末元素平均生成100个元素的行向量。
LINSPACE(X1, X2, N) generates N points between X1 and X2.
For N < 2, LINSPACE returns X2.
以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。
Class support for inputs X1,X2:
float: double, single
数据类型:单精度、双精度浮点型。
(4)说明函数ones()、zeros()、eye()的用法。
ones()生成全1矩阵。
zeros()生成全0矩阵。
eye()生成单位矩阵。
2、Matlab的数值显示格式
思考题:
(1)3次执行exist(’pi’)的结果一样吗?如果不一样,试解释为什么?
>> pi
ans =
3.1416
>> sin(pi);
>> exist('pi')
ans =
5
>> pi=0;
>> exist('pi')
ans =
1
>> pi
pi =
0
>> clear
>> exist('pi')
ans =
5
>> pi
ans =
3.1416
答:3次执行的结果不一样。exist()函数是返回变量搜索顺序的一个函数。在第一次执行时返回5代表变量pi是由Matlab构建的变量。在第二次执行时已经通过赋值语句定义了变量pi,返回1代表pi是工作空间变量。第三次执行前清除了工作空间,此时pi为系统默认常量,和第一次执行时性质一样,所以又返回5。
(2)圆周率pi是系统默认常量,为什么会被改变为0。
pi=0 为赋值语句,此时pi不再是系统默认常量,而是定义的变量了。
二 MATLAB语言基础
1、向量的生成和运算
练习:使用logspace()创建1~4π的有10个元素的行向量。
>> A=logspace(0,1.0992,10)
A =
1.0000 1.3247 1.7550 2.3249 3.0799 4.0801 5.4051 7.1603 9.4856 12.5661
2、矩阵的创建、引用和运算
(1)矩阵的创建和引用
练习:创建以下矩阵:A为3×4的全1矩阵、B为3×3的0矩阵、C为3×3的单位矩阵、D为3×3的魔方阵、E由C和D纵向拼接而成、F抽取E的2~5行元素生成、G由F经变形为3×4的矩阵而得、以G为子矩阵用复制函数生成6×8的大矩阵H。
>> A=ones(3,4),B=zeros(3,3),C=eye(3,3),D=magic(3)
A =
1 1 1 1
1 1 1 1
1 1 1 1
B =
0 0 0
0 0 0
0 0 0
C =
1 0 0
0 1 0
0 0 1
D =
8 1 6
3 5 7
4 9 2>> E=[C;D], F=E(2:5,:), G=reshape(F,3,4)E =
1