idx = find(isnan(data));
idx = find(~isnan(data))
[dat in] = unique(data(:,n));
b = unique(A)
b = unique(A,'rows')
[b,m,n] = unique(...)
b = unique(A)
b = unique(A,'rows')
[b,m,n] = unique(...)
ismember,matlab中help的例子如下:
a=[1 2 3 4 5];
set = [5 2 4 2 8 10 12 2 16 18 20 3];
[tf, index] = ismember(a, set);
index返回a中的元素在set中出现的位置,若为0表示未找到,这个例子的结果为:
index=[0 8 12 3 1];
描述
1、b = unique(A) 返回的是和A中一样的值,但是没有重复元素。产生的结果向量按升序排序。A可以是一个字符串的单元阵列。
2、b = unique(A,'rows') 返回的是A中的唯一的行数。
3、[b,m,n] = unique(...) 也返回索引向量m和n,使得B = A(M)和A= B(N)。m的每一个元素是最大的下标,使得B = A(M)。对于行的组合,B = A(M,:)和A= B(N,:)。
当我们处理包含很多元素的数组或者数据表时,如果遇到需要处理掉NaN值的情况,可以用这一招非常快捷地删掉这些缺失的内容。需要用到的命令是:rmmissing
操作
rmmissing常见用法:
rmmissing(A):
从数组或表中删除缺失的条目。若A为向量,则rmmising会删除所有缺失数据的NaN部分。若A为矩阵或表,则rmmising会删除所有包含NaN所在的行数据。
例如:
A=[1,3,5,7,NaN,4,6,8];
B=rmmissing(A);
结果:
B =
1 3 5 7 4 6 8
rmmissing(A,dim):
沿着指定运算的维度,删除所有NaN所在的行或列。
dim为1则沿着行来删除,2则沿着列来删除。
例如:
A=[1,3,NaN,7;
2,4,6,8;
11,33,55,77;
22,44,66,NaN];
B=rmmissing(A,2);
结果(删除包含NaN的第3、4列):
B =
1 3
2 4
11 33
22 44