MATLAB-相关
寻找矩阵中索引满足某一条件的数据
例如 PTNIDX
有两列数据, 第一列是单元的 tag,
第二列是单元所属分块的编号, 那么想要找到所有分块编号为 iptn
的单元编号, 可以用如下代码实现: 1
elemID = PTNIDX(PTNIDX(:,2)==iptn,1)
首先, PTNIDX(:,2)==iptn
返回长度为
size(PTNIDX,1)
的逻辑数组, 逻辑数组可以作为数组的索引,
并且逻辑值为false
的编号不返回数据, 例如返回的逻辑数组中
true
的数量为 ntrue
, 那么 elemID
维度就是 ntrue x 1
如果想找到某一个单元标签所在数组 elemID
索引位置,
那么使用函数 find
: 1
eidx = find(elemID==etag);
函数 find
会返回一个索引数组(如果确实找到这个元素的话),
注意这与逻辑数组的索引方式是不同的