How look for value inside Cell_array?

I've a cell_array of data, the dimension is 'Cell_P' 10x1, inside every cell there is a matrix 25x16. I need six columns of the matrix, and I can find these because I know the values of parameters inside. I need to make a new cell_array with inside 10 matrix 25x6.
I would like insert as input six values, identify the columns where the values are, create a new cell_array with just that column.
How can I do it?

2 Comments

An example of inputs and desired outputs would be helpful.
That said, I would guess that something like this is what you're going for, tweaked as appropriate for your exact data types and structures.
%If your inputs are numerical
cellIndex = cellfun(@(x) ismember(x,myInputValues),inputCellArray(1,:));
outputArray = inputCellArray(:,cellIndex);
%if your inputs are strings
cellIndex = ismember(inputCellArray(1,:),myInputValues);
outputArray = inputCellArray(:,cellIndex);

Sign in to comment.

 Accepted Answer

Stephen23
Stephen23 on 22 Feb 2016
Edited: Stephen23 on 22 Feb 2016
Try this:
% fake data:
for k = 10:-1:1
inp{k} = repmat(randperm(16),25,1);
end
% extract only columns that contain an element in vec:
vec = [2,3,6,9,11,14];
out = inp;
for k = 1:numel(out)
out{k} = out{k}(:,any(ismember(out{k},vec),1));
end

1 Comment

Oh my god! thanks! I don't know how, but works!

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

on 22 Feb 2016

Commented:

on 23 Feb 2016

Community Treasure Hunt

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

Start Hunting!