函数bsxfun
【功能描述】两个数组间元素逐个计算.
【应用场合】当我们想对一个矩阵A的每一列或者每一行与同一个长度相等的向量a进行某些操作(比较大小,乘除等)时,我们只能用循环方法或者利用repmat函数将要操作的向量a复制成和A一样尺寸的矩阵,进而进行操作。从MATLAB R2007a开始,再遇到类似的问题时,我们有了简洁高效的方法,即利用bsxfun函数。
【函数描述】C=bsxfun(fun,A,B):两个数组间元素逐个计算,fun是函数句柄或者m文件,也可以为如下内置函数
For example:
利用bsxfun函数,可以给出下列代码:
a = [1,2,3;4,5,6;7,8,9];
acol = bsxfun(@times,a,[1 2 4])
Matlab中repmat函数用法
复制和平铺矩阵
函数 repmat
格式 B = repmat(A,m,n)
B = repmat(A,[m n])
B = repmat(A,[m n p…])
repmat(A,m,n)
B=repmat(A,m,n):把矩阵A复制n*m份,并堆叠构成矩阵B,矩阵B的大小为[size(A,1)*m, size(A,2)*n]。