我想找到它们的值存在于矩阵中的所有[d1 by d2]子矩阵,例如,假设我有以下内容:
pvec = [ 1 1
2 2
3 4
4 7]
m = [ 1 4 1 1;
2 2 1 1;
2 2 2 1;
3 4 2 1;
1 1 3 3;
2 2 5 6 ]
[1 1]的指数点:(1,3),(1,4),(2,3),(2,4),(5,1)和(5,2)。这些点应该一起返回所有行出现,如[1 1]情况(我不在乎它们是实际(i,j)点还是线性索引)。
正如我所说,我知道如何为这样的固定pvec执行此操作:
m(find(ismember(m, pvec(1, :)) & ismember(m, pvec(2, :)) & ismember(m, pvec(3, :))))
我认为你明白了,但问题是pvec在脚本的每次迭代中可能会改变大小,我不知道如何一次性完成它们。任何人都知道如何做到这一点?
我自己找到了答案;虽然不是很优雅。
idc = [];
Ig = imread(someimg);
padvec = [ ... ] % some pad vec
for i = 1:size(padvec,1)
idc = [idc, find(ismember(Ig, padvec(i, :)))'];
end
答案 0 :(得分:1)
这是你想要的吗?
pvec = [ 2 2
3 4
4 7]
m = [1, 4
2, 2
2, 2
3, 4
1, 1
2, 2]
m(ismember(m,pvec, 'rows'), :)
ans =
2 2
2 2
3 4
2 2