题目
写出下列程序的执行结果: 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。