accumarray():
- A = accumarray(subs,val)
>> subs = [1 2 4 2 4 4 4 4]
>> accumarray(subs',1) % subs必须是列向量
ans =
1; 2; 0; 5 % 返回结果为:subs里面有几个‘1’,‘2’,‘3’,‘4’
>> subs=[3 1 1 9 7 4 10 1]
>> val =[5 4 8 8 2 5 5 7]
>> accumarray(subs',val) % subs必须变成列向量
ans =
19 0 5 5 0 0 2 0 8 5 % subs(1)=3,只出现一次,则ans(3)等于subs(3)中对应位置的值
% subs(2)=subs(3)=subs(8)=1,则ans(1)等于subs中出现1的
% val对应位置元素相加
deal():
- [y1,y2,...,yn] = deal(x) // 分别把x赋值给y1,y2,...,yn
- [y1,y2,...,yn] = deal(x1,...,xn) // y1=x1,x2=y2,...,xn=yn
factor():
- f = factor(n) // 返回一个行向量,其元素是 n 的约数
>> f = factor(200)
>> f
2 2 2 5 5
pdist():
- D = pdist(X)
// 计算X中各对行向量的相互距离(假设X是一个 m-by-n的矩阵)。D是一个长为 m(m-1)/2的行向量,可以这样理解D的生成:首先生成一个X的距离方阵,由于该方阵是对称的,且对角线上的元素为0,所以取得此方阵的下三角元素,按照matlab中矩阵的按列存储原则,此下三角个元素的索引排列即为(2,1),(3,1),。。。,(m,1),...,(m,m-1)。可以用命令squareform(D)将此行向量转换为原距离矩阵。(squareform函数是专门干这事的,其逆变换也是squareform)。
squareform():
- Z = squareform(y) // y是一个向量,此函数经常和qdist配套使用。
>> y = 1 2 3 4 5 6
>> X = squareform(y)
>> X
0 1 2 3
1 0 4 5
2 4 0 6
3 5 6 0
- y = squareform(Z) // 上面函数的反过程
>> Z =
0 1 2 3
1 0 4 5
2 4 0 6
3 5 6 0
>> y = squareform(Z)
>> y
1 2 3 4 5 6