# Related vector values via cell array

1 回表示 (過去 30 日間)
Sergio Rojas Blanco 2023 年 8 月 12 日
コメント済み: Dyuman Joshi 2023 年 8 月 12 日
Hi guys, I hope someone can help me:
I have a vector. Suppose this:
A=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)'
Some values of this vector are related through a cell array, in such a way that a value of the vector is the index of a cell. I need to know if a value of the vector "a" is related to another value "b".
B={15, 12, 0, [11, 7], 9, 0, [1, 20, 21], 18, 7, 0, 16, [13, 14], 17, 4, 6};
a=2; b=7
In this case, 2 and 7 are related:
Index Value
2 12
12 13,14
13 17
17 Nan
14 4
4 7
So, a=5 and b=6; and a=4 and b=1 are also related.
Thanks to the whole community
##### 5 件のコメント3 件の古いコメントを表示3 件の古いコメントを非表示
Sergio Rojas Blanco 2023 年 8 月 12 日
You're rigth. I have edited to remove the error
Dyuman Joshi 2023 年 8 月 12 日

サインインしてコメントする。

### 採用された回答

Dyuman Joshi 2023 年 8 月 12 日
A=(1:10)';
B={15, 12, 0, [11, 7], 9, 0, [1, 20, 21], 18, 7, 0, 16, [13, 14], 17, 4, 6};
m = max([B{:}]);
z1 = nested(A,B,2,7)
z1 = 1
%8th index is 18 which is greater than the number of elements
%so no value is related to it
z2 = nested(A,B,8,randi(m))
z2 = 0
%3rd index is 0, so no value related to it
z3 = nested(A,B,3,randi(m))
z3 = 0
%Similarly for 6th index
z4 = nested(A,B,6,randi(m))
z4 = 0
z5 = nested(A,B,5,6)
z5 = 1
%As the 1st index in B goes to the 6th index, no value will be related to it as well
z6 = nested(A,B,1,randi(m))
z6 = 0
function z = nested(A,B,a,b)
%Returns 0 if not related, 1 if related
%Initialize z as 0
z=0;
nB=numel(B);
for m=1:numel(a)
%Assign only if the value is within the range of number of elements of B
if a(m)<=nB && a(m)>0
c=B{a(m)};
else
%If the value is not in the range, skip to the next iteration
continue
end
%Check if b is present in c or not
if ismember(b,c)
z=1;
return
else
%If not present, continue the recursion and keep checking
z=nested(A,B,c,b);
end
end
end
##### 2 件のコメントなしを表示なしを非表示
Sergio Rojas Blanco 2023 年 8 月 12 日
Thanks a lot Dyuman. I have gained a lot of time with your code.
Dyuman Joshi 2023 年 8 月 12 日

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

R2023a

### Community Treasure Hunt

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

Start Hunting!

Translated by