MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

get common position in cell array and replace with specific values

Elysi Cochin さんによって質問されました 2019 年 3 月 20 日
最新アクティビティ Jan
さんによって 編集されました 2019 年 3 月 21 日
idx = [ 3 6 7 ] ;
ids = [ 2 3 5 6 7 ] ;
i have a cell of size 1 x 8
Initially all values in cell_array of size 1 x 8 is 'AB'
i want, the value in cell_array positions [3 6 7] (which is common in both idx and ids) to be wriiten as 'A' and the other values not in idx as 'B'
and those positions not in idx or ids, leave as it is (in our case 'AB')

  1 件のコメント

What about 7?

サインイン to comment.

タグ

1 件の回答

回答者: Jan
2019 年 3 月 20 日
編集済み: Jan
2019 年 3 月 21 日
 採用された回答

C = repmat({'AB'}, 1, 8);
idx = [ 3 6 7 ] ;
ids = [ 2 3 5 6 7 ] ;
index = intersect(ids, idx);
C(index) = {'A'};
index = setdiff(ids, idx);
C(index) = {'B'};
Or leaner:
m = ismember(ids, idx);
C(ids(m)) = {'A'};
C(ids(~m)) = {'B'};
Or:
Pool = {'B', 'A'};
C(ids) = Pool(ismember(ids, idx) + 1)

  0 件のコメント

サインイン to comment.



Translated by