如何在Matlab中使用sum()函数对矩阵第1行和第3行求和?
Matlab 计算指定行元素总和的方法
针对你的矩阵 A = [1 1 4; 4 4 2; 1 2 4],要计算第1行和第3行的元素总和,不用循环的话可以这么做:
核心思路
先提取目标行组成子矩阵,再对这个子矩阵的所有元素求和,避免包含其他行的元素。
具体代码实现
A = [1 1 4; 4 4 2; 1 2 4]; % 方法1:先算每行的和,再累加(直观易读) target_rows = A([1,3], :); % 获取第1、3行的子矩阵 row_totals = sum(target_rows, 2); % 计算每行的和,得到 [6; 7] total = sum(row_totals); % 最终总和:13 % 方法2:直接对目标子矩阵所有元素求和(Matlab R2018b及以上版本支持) total = sum(A([1,3], :), 'all'); % 方法3:嵌套sum兼容旧版本 total = sum(sum(A([1,3], :)));
为什么之前会得到整个矩阵的和
你之前直接用sum(A)或sum(sum(A))时,没有筛选行,会默认对整个矩阵的所有元素求和。只要先通过索引A([1,3], :)选中目标行,再求和就只会计算这两行的元素了。
内容的提问来源于stack exchange,提问作者Amiko
相关产品推荐
相关产品推荐

