separating element in cell according to some condition

1 回表示 (過去 30 日間)
NA
NA 2020 年 4 月 18 日
編集済み: NA 2020 年 4 月 25 日
I have A
A={[237;238;241;243], [238;237;241;243;247], [241;237;238;243;247],...
[243;237;238;241;247;310],[247;238;241;243;310;381],[310;243;247],[381;247;310] }
I want to use this algorithm
First cell
  1. A{1}=[237;238;241;243]
  2. Put first and second element of A{1} in temp (temp=[237,238])
  3. Choose last element in temp, if it has only 2 element (238)
  4. Choose cell in A that the first element is 238 (A{2}=[238;237;241;243;247])
  5. Third element in A{1} is 241
  6. Does 241 belong to A{2}? yes
  7. So, we could add 241 to temp (temp=[237,238, 241])
  8. 4th element in A{1} is 243
  9. Does 243 belong to A{2} and A{3}? Yes ---> I have a problem to write a code for this part
  10. So, we could put 243 on temp (temp=[237,238, 241,243])
Result in this cell, temp =[237,238, 241,243])

回答 (1 件)

Mehmed Saad
Mehmed Saad 2020 年 4 月 18 日
I will give you a hint for A{1}(4) with A{2} and A{3}
  1. compare 4th element of A{1} with A{2} all element
  2. if any of them is 1 it means it is inside that cell. it will give you output in the form of logical array [0 0 1 0]
  3. compare 4th element of A{1} with A{3} all element, and sum the logical array, if its sum is greater than 0 it means that 4th element of A{1} exist in A{3}. apply and operation on the logical array given by step 2 with current output
  4. feed these logical index to A{2}(logical index)
temp = [temp;A{2}(and((sum(A{3}==A{1}(4))>0),(A{2}==A{1}(4))))];

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by