0

サイズの異なる A と B の 2 つの配列があります。A と B を比較していて、A の各要素について、B の最初の要素のうち小さい/大きいものを見つけたいと考えています。

同一の要素を探していないことを除いて、ismember(A,B) のようなものを使用したいと思います。問題は、A と B が同じサイズではないため、「検索」が機能しないことです。

私は今ループを使用しましたが、これをプログラムするためのよりエレガントな方法を探しています。ループは次のとおりです。

        for zz=1:length(A)
            tmpmax(zz) = find(B>=A(zz),1);
            tmpmin(zz) = find(B<=A(zz),1,'last');                
        end

ご提案いただきありがとうございます。

イモ

4

2 に答える 2

1

次の方法でループを取り除くことができます。

tmpmin = arrayfun(@(x) find(B>=x,1), A);
tmpmax = arrayfun(@(x) find(B<=x,1,'last'), A );
于 2012-05-11T15:13:06.130 に答える