E
Mx3 マトリックスの値を含むNx3 マトリックスの行を見つけることになっているコードを書いていますT
が、それらは必ずしも同じ順序ではありません。動作するものを書きましたが、スタイルに満足できず、使用ismember
しているループではなく、および検索を使用して行列に論理演算を適用したいと考えています。
E = [7 36 37; 9 1 5; 4 34 100; 4 12 33; 4 34 33];
T = [37 7 36; 4 34 33];
for i=1:size(T,1)
T(i,:) = sort(T(i,:));
end
for i=1:size(E,1)
E(i,:) = sort(E(i,:));
end
res = zeros(size(T,1),1);
for i=1:size(T,1)
a = ismember(E,t(i,:));
res(i,1) = find(sum(a,2)==3);
end
E
私の考えは、 andの各行を並べ替えてT
、同じ順序になり、各行をループで比較することでした。しかし、私は自分のコードをより MATLAB スタイルで書くことを学ぼうとしismember
ており、同じ操作を適用して、おそらく見つけたいと思っています。このようなもの:
a = sum(ismember(E,T(1,1))~=0,2);
b = sum(ismember(E,T(1,2))~=0,2);
c = sum(ismember(E,T(1,3))~=0,2);
r = find(a&b&c);
もっと優雅な解決策はありますか?
ありがとうございました!