【发布时间】:2014-01-22 13:58:21
【问题描述】:
我想找到它们的值驻留在矩阵中的所有 [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
【问题讨论】:
-
请同时提供
m的示例,并显示该pvec示例的输出应该是什么 -
@Dan 你去了,希望我能澄清一下我想要的东西。谢谢!
-
我尝试了作为解决方案提出的那个函数,在我的例子中它返回一个零矩阵。不是我想要的。
-
@jtimz 请显示该尝试的代码?
-
我找到了@Dan,感谢您的意见。