Matlab: sum的用法、每一行求和、repmat的用法、sum和repmat结合使用减少循环
·
偶尔会用到关于矩阵元素的求和,总结一下常用的
目录
1、向量求和
直接调用sum即可,得到所有元素的和
a = [1 3 5 7];
s = sum(a);

2、矩阵求和
调用格式:
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)



AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)