get a subcell from a bigger cell

I have a cell of 10x9 named 'a', each index contains a string. How can i create a sub cell if i have two vectors (f,c) with the indexes that i want. e.g. imagine a 2x3 cell a and indexes f and c
a={('this'), ('is') ,('big');('he') ,('buys') ,('it')}
f=[1,1,2];
c=[1,2,3];
the result i want is b={('this'), ('is');('it'),('')}

3 commentaires

There are no parentheses around the strings:
a = {'this', 'is', 'big'; 'he', 'buys', 'it'}
Now please explain, why for [1,1,2] the cell {'this', 'is'} is created. What is the relation between the indices and the output? Of course we could try to guess this, but it is more efficient, if you explain it.
the indexes are found following a 2x3 matrix said
b=[1 1 0;0 0 1]
in which 1 indicates the "correct" words following a criteria. so to find the indexes of those words i used
[c,f]=find(b==1);
Wouldn't it be easier to apply directly:
a(b)

Connectez-vous pour commenter.

Réponses (1)

Guillaume
Guillaume le 5 Fév 2018

0 votes

Use ind2sub:
a(ind2sub(size(a), f, c))
The result will be 1x3 vector not an arbitrary sized array.

Catégories

Commenté :

Jan
le 5 Fév 2018

Community Treasure Hunt

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

Start Hunting!

Translated by