一些小问题!
rv=... %# [N-by-3]
r=sqrt(sum(rv,2).^2);
if r < b
statement1
end
Statement是将r的索引保存在向量中(如C)。 像这样:C = [1 3 4 7 9,...] 通过使用该向量,我想选择N×N矩阵的一些元素 2D矩阵的每个元素具有2个索引:(i,j)。如果它们都在索引(C)的向量中,则选择它并将其索引保存在单元格中 这样的事情:D = {[2x1] [2x1] ......} 非常感谢任何指南。 Whishes
=============================================== ==================================
对于第二个:
p=1
for i=1:N
if r(i)<R
L(p)=i;
p=p+1;
end
end
L=[.....];
for i=1:length(L)
for j=1:length(L)
D{i,j}=C{L(i),L(j)};
end
end
但问题是它有一个for结构并且非常慢。我正在寻找更快的东西。也许是combnk
答案 0 :(得分:1)
不确定我是否理解你的问题。但是我走了。
我首先将L的索引从下标转换为sub2ind的索引。然后,您可以使用生成的索引生成D的矢量化版本,并使用reshape为其提供所需的最终N-D版本。类似的东西:
LInd = sub2Ind(size(C), L, L)
Dvect = C(LInd);
D = reshape(D, Shape_I_Want);
希望这有帮助