2

行列 [mxn] とベクトル [m] があり、各行を対応するベクトル番号と比較したいのですが、このベクトル化された方法を実行する方法はありますか?

4

2 に答える 2

6

使用bsxfun:

% example data
M = rand(5, 3);
V = rand(5,1);

% for equality (==) : 
bsxfun(@eq, V, M);

% for greater-than (>) : 
bsxfun(@gt, V, M);

% for greater-than-or-equals (>=) : 
bsxfun(@ge, V, M);

など。利用可能な機能のリストは に記載されていhelp bsxfunます。

于 2012-11-27T10:48:45.760 に答える
0

まず第一に、受け入れ率に注意してください:)

intersectベクトルメンバーがマトリックスにあるかどうかを比較する関数を試すことができます。次に、それらのメンバーを新しいベクターに保存してください。

x = [mxn]
y = [m]
z=intersect(x,y)

例えば

x = [1,2,3,4,5,]
y = [5,6,2]
z = intersect(x,y)

結果として

z = [2,5]

改善された答えは次のとおりです。

[z,ix,iy] = intersect(x,y)

ここで、ix, iy は、X に存在する y 要素の行インデックスを示します。

于 2012-11-27T10:19:35.970 に答える