偶尔会用到关于矩阵元素的求和,总结一下常用的
目录
1、向量求和
2、矩阵求和
(1)默认按列求和,得到一个行向量
(2)求每一行的和
3、sum和repmat一起使用
(1)矩阵A中每一行的平方和
(2)repmat的基本用法
(3)高斯核的计算
1、向量求和 直接调用sum即可,得到所有元素的和
a = [1 3 5 7];
s = sum(a);
文章图片
2、矩阵求和 调用格式:
【Matlab: sum的用法、每一行求和、repmat的用法、sum和repmat结合使用减少循环】s = sum(A,dim);
% dim = 1,按列求和;dim = 2,按行求和
(1)默认按列求和,得到一个行向量
文章图片
(2)求每一行的和
b = [1 3 5 7;
2 4 6 8]
s = sum(b,2); % 得到一个列向量
文章图片
3、sum和repmat一起使用 结合repmat使用,可以节省一些for循环的运算,比如支持向量机中的核函数的表示(高斯核)
(1)矩阵A中每一行的平方和
A = [1 3 5 7;
2 4 6 8];
s = sum(A.*A,2);
% 对应元素点乘,再按行相加
文章图片
(2)repmat的基本用法
% A可以是向量或矩阵
B = repmat(A,m,n);
% 产生m行n列的A,并组成矩阵
文章图片
(3)高斯核的计算
% A是m1行n列的矩阵;C是m行n列的矩阵
KA = exp(-(repmat(sum(A.*A,2),1,m)+repmat(sum(C.*C,2)',m1,1)-2*A*C')/(p^2));
% K(A,C)
文章图片
订正:图片最后的结果少了一个负号
推荐阅读
- 最优化问题|改进交叉算子的自适应人工蜂群黏菌算法
- matlab|嵌入均衡池的黏菌优化算法
- 最优化问题|加入领导者的黏菌优化算法
- MATLAB图形界面|基于Matlab的汽车出入库计时计费系统
- Matlab旅程|MATLAB的结构化程序设计
- matlab 内存管理 清理内存
- matlab中使用colormap没有效果
- Matlab|圆柱绕流
- MATLAB|Splart-Allmaras湍流模型及MATLAB编程~
- regionprops统计被标记的区域的面积分布,显示区域总数。