题目
写出下列程序的执行结果: s=0; a=[1,2,3;4,5,6]; for k=a s=s+k; end disp(s)A. [6;15]B. [6,15]C. [5 7 9]D. [5;7;9]
写出下列程序的执行结果: s=0; a=[1,2,3;4,5,6]; for k=a s=s+k; end disp(s)
- A. [6;15]
- B. [6,15]
- C. [5 7 9]
- D. [5;7;9]
题目解答
答案
A
解析
考查要点:本题主要考查MATLAB中矩阵的遍历方式及累加操作的理解。关键在于理解for
循环遍历矩阵时,默认按列取元素,并正确计算累加结果。
解题核心思路:
- 矩阵遍历规则:MATLAB中
for
循环遍历矩阵时,默认按列依次取出列向量。 - 累加过程:每次循环将当前列向量加到变量
s
中,最终s
的结果为各列元素分别累加后的列向量。
破题关键点:
- 明确矩阵
a
的列结构(共3列,每列2个元素)。 - 每次循环中,
k
为列向量,累加操作按列向量进行。
矩阵a
的结构
矩阵a
为:
1 2 3
4 5 6
共2行3列,按列分割为3个列向量:
- 第1列:
[1; 4]
- 第2列:
[2; 5]
- 第3列:
[3; 6]
循环过程
- 初始状态:
s = 0
(标量)。 - 第1次循环(
k = [1; 4]
):s = 0 + [1; 4] = [1; 4]
(列向量)。
- 第2次循环(
k = [2; 5]
):s = [1; 4] + [2; 5] = [3; 9]
。
- 第3次循环(
k = [3; 6]
):s = [3; 9] + [3; 6] = [6; 15]
。
最终结果
s
为列向量[6; 15]
,对应选项A。