0

ベクトル A = があるとします。

 3     5     3     3     2     2     4     2     6

最初のベクトル A からのこれらすべての値を含む新しいベクトル B を作成する必要があります。これにより、一意の要素数 n が得られます (この例では、n=3 と仮定します)。新しいベクトルは B =

 3     5     3     3     2

ベクトル A の 5 番目の要素まで、3 つの一意の値 (3,5,2) があります。実際のベクトルははるかに大きいため、一般的な解決策が必要であり、できればループを回避する必要があります。何か案は?前もって感謝します

4

2 に答える 2

4

uniqueこの問題に使えます。ただし、必ず'stable'オプションを使用してください。

A = [3     5     3     3     2     2     4     2     6]; 
n = 3; 

[x, id] = unique(A,'stable'); 

B = A(1:id(3))

これにより、

B =

     3     5     3     3     2
于 2012-11-15T16:05:06.680 に答える
2

以下をせよ:

A = [3  5  3  3  2  2  4  2  6];
n = 3;

[b,i] = unique(A,'first');
h = sort(i);
A(1:h(n))
于 2012-11-15T16:15:33.110 に答える