matlab学习笔记:第三章课后习题
练习题1.
(1) 生成一个6行3列的随机矩阵A,矩阵中每个元素都是位于区间[50,100]之间的随
机整数,下面我们假设矩阵A的每一行代表一名学生,这六名同学的三门科目的
成绩对应着三列;
(2) 将第一门科目六名同学的成绩赋值给变量B,对B进行降序排列,排序后的向量
记为BB,并返回BB中的每个元素在B中的索引向量ind;
(3) 计算A中所有成绩的自然对数;
(4) 请基于第二科的成绩按升序对这六名同学进行排序,当第二科成绩相同时,请保持
其在矩阵中出现的先后顺序;
(5) 计算六名同学的总分以及每门科目的平均分;
(6) 计算每门科目的最低分,并返回是第几位同学取得的分数;
(7) 计算每名同学在哪门科目上分数最高、并返回最高分;
(8) 假设这三门科目的权重分别是0.2, 0.5, 0.3,请计算每名同学的加权平均分(即三
门科目的成绩分别乘以对应的权重,然后再求和);
(9) 判断这三门科目是否有同学不及格(低于 60 分),如果有任意一名同学在某个科
目中不及格就返回逻辑值1,否则返回逻辑值0;
(10)统计每门科目不及格的人数;
(11)将A中低于60分的成绩全部改成60分;
(12)在上一问的基础上重新计算六名同学的总分,并找出总分最高的同学。
A = randi([50,100],6,3)
B = A(:,1);
A3 = log(A);
[BB,ind] = sort(B,"descend");
A_4 = sortrows(A,2,"descend");
A_5_1 = sum(A,2);
A_5_2 = mean(A,2);
[A6,ind1] = min(A,[],1);
[M,I] = max(A,[],2,"linear");
A7_ = A(I);
A8 = A(:,1)*0.3 + A(:,2)*0.5 + A(:,3)*0.3;
A9 = (A <= 60);
A10 = sum(A9,1);
A(A <= 60) = 60;
A12 = sum(A,2);
[A12_1,ind2] = max(A12);
练习题2.
如果x是一个常数,A是一个矩阵,请给出至少两种方法来判断A矩阵中是否存在x?
存在则返回逻辑值1,否则返回逻辑值0
x = 6
A = randi([1,8],3,4)
ismember(x,A); %方法一
x == A %方法二
练习题3.
生成包含3个元素的行向量A,A中每个元素都是位于1-10之间的随机整数;再生成
包含10个的元素的行向量B,B中的每个元素也都是位于1-10之间的随机整数。
(1) A中的这三个元素哪些出现在B中?
(2) A中每个元素是否都包含在B中?
A = randi([1,10],1,3)
B = randi([1,10],1,10)
C = intersect(A,B)
D = ismember(A,B)
练习题4.
如何创建一个包含n个元素的等比数列,其第一项为a,最后一项为b。例如a=2, b=1024, n=10 时,创建的等比数列为:[2 4 8 16 32 64 128 256 512 1024]
a = log10(2);
b = log10(1024);
n = 10;
A = logspace(a,b,n)
练习题5.
以创建一个m行n列的随机矩阵,矩阵中的每个元素都服从均值为𝑝,方差𝑞2的正态分布。
m = 3
n = 4
p = 3
q = 4
A = randn(m,n)
A1 = p + q^2 * A
练习题6.
找到向量x中最大值对应的位置索引,如果有多个最大值,将它们的索引全部返回。
A = [3 7 6 2 2 5 9 9 9 3]
M = max(A)
A1 = (A == M)
ind = find(A1)
练习题7.
给出一个实矩阵 A,请判断 A 是否为对称矩阵。(实矩阵是指矩阵中的每一个元素都 是实数,不含复数;若A和A的转置相同,则A为对称矩阵)
A = randi([1,9],4)
A1 = triu(A,1)
A1_ = transpose(A1)
A2 = tril(A,1)
sum(A1_ == A2,"all") %只有为零的时候才是对称矩阵
练习题8.
下面是斐波那契数列的通项公式,请使用该通项公式计算n=1,2,…,10的前10项。
n = 10
S = 1/sqrt(5) * (((1+sqrt(5))/2)^n - ((1-sqrt(5))/2)^n)
后续题目有时间再写
原文地址:https://blog.csdn.net/weixin_63883130/article/details/143288586
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!