0

Matlab の代わりに R を使用する必要があり、初めてです。

1、2、3、4、5、6、7、8、9、10、1、2、3、4、5、6、7、8、9、10 のように繰り返されるデータの大きな配列があります。 .

1、4、7、10 に等しい値が見つかった場所を見つけて、それらの場所を使用してサンプルを作成する必要があります。

この場合、位置(=対応する値) 1(=1) 4(=4) 7(=7) 10(=10) 11(=1) 14(=4) 17(=7) 20(= 10)など。

MatLab では y=find(ismember(x,[1, 4, 7, 10 ])) になります。助けてください! ありがとう、パベル

4

2 に答える 2

0

このようなもの?

foo <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
bar <- c(1, 4, 7, 10)
which(foo %in% bar)
#> [1]  1  4  7 10 11 14 17 20

@ nicola、私の回答をコピーして、回答された質問を閉じようとするだけで、あなたの回答を認めてください。

于 2016-01-05T17:19:06.980 に答える
0

%in% 演算子が必要です。例えば、

# data in x
targets <- c(1, 4, 7, 10)
locations <- x %in% targets
# locations is a logical vector you can then use:
y <- x[locations]

位置の行インデックスと列インデックスが必要な場合は、1 つまたは 2 つの追加の手順が必要になりますが、そうするかどうかは明確ではありません。(注、論理は列順になります)。

于 2016-01-05T17:19:21.783 に答える