若要获得更好的阅读体验,请前往 链接。
1(课本习题1)
执行下列命令,观察其运算结果,理解其意义:
(1) [1 2; 3 4]+10-2i;
(2) [1 2; 3 4].*[0.1 0.2; 0.3 0.4];
(3) [1 2; 3 4].[20 10; 9 2];
(4) [1 2; 3 4].^2;
(5) exp([1 2; 3 4]);
(6) log([1 10 100]);
(7) prod([1 2; 3 4]);
(8) [a, b]=min([10 20; 30 40]);
(9) abs([1 2; 3 4]-pi);
(10) [10 20; 30 40]>=[40, 30; 20 10];
(11) find([10 20; 30 40]>=[40, 30; 20 10]);
(12) [a, b]=find([10 20; 30 40]>=[40, 30; 20,10])(提示:a为行号,b为列号)
(15) linspace(3, 4, 5);
(16) A=[1 2; 3 4]; A(:, 2).
答:
- 矩阵上每个元素整体加法10,再减去复数2i。
- 执行数组乘数组。
- 数组除法。
- 对矩阵中的每个元素进行平方操作。
- 计算矩阵的指数函数,得到一个新的矩阵。
- 计算矩阵中每个元素的自然对数。
- 按列计算A矩阵的乘积
- 其中a返回了包含每一列最小的元素的数组,b返回了出现时的对应引索。
- 计算矩阵与圆周率π之间的差的绝对值。
- 逐元素比较两个矩阵,判断第一个矩阵的元素是否大于或等于第二个矩阵的对应元素,返回一个逻辑数组。
- 使用find函数返回问题(10)的结果中每个非零元素的线性索引组成的列向量。
- 通过find函数找出问题(10)的结果中每个非零元素的行和列下标。
- 使用linspace函数生成从3到4的5个等间距的数值。
- 访问矩阵A的第二列,并对其进行操作或计算。
- 创建一个由区间 [3,4] 中的 5 个等间距点组成的向量。
- 对二维数组进行切片操作,提取出了第二列的所有元素。
2(课本习题2)
执行下列命令,观察其运算结果、变量类型和字节数,理解其意义:
(1) clear; a=1,b=num2str( a),c=a\>0,a==b,a==e,b==0;
a, b, c的值尽管都是1, 但数据类型分别为数值,字符,逻辑,注意a与c相等,
但他们不等于b,这是因为他们的数据类型不同。b=num2str(a)是将a从数值转换为了字符并赋值给b。
c=a>0:a>0的结果被赋值给c。
a==b,判断a与b是否相等,因为a与b 类型不符,输出0,
a==c,判断a与c是否相等,因为a与c都是数值,可以比较输出1
b=c,判断b与c是否相等,因为b与c类型不符输出0。
(2) clear; fun='abs (x)',x=-2,eval( fun),double(fun)
。
fun,x,ans的数据类型分别是字符串,数值,数组。
'abs (x)'被作为字符串赋值给fun。
eval函数可以将字符串解析为Matlab代码并执行
double函数将fun进行类型转换,将每个字符的ASCII码返回。
3(课本习题3)
本金K以每年n次,每次p%的增值率(n与p的乘积为每年增值额的百分比)增加,当增加到 rK 时所花费的时间(单位:年)为 T = ln r n ln ( 1 + 0.01 p ) T=\frac{\ln r}{n\ln(1+0.01p)} T=