run through a cell content in single loop

2 views (last 30 days)
Hello,
I try to get data from cell A by its index value(stored in B).
A = cell(1, 10);
B = [1 3 6 8];
How to get first 3rd, 6th, 8th cell content in a single loop?
I tried A{B}, it doesn't work.
If A is a large cell, A = cell(1, 50000); B = [many indice here], I got error:
AA = A(B);
??? Index exceeds matrix dimensions.
  1 Comment
Daniel Shub
Daniel Shub on 7 Mar 2011
Are you sure you did not screw something up?
A = cell(1, 50000);
B = randi(50e3, [1, 500e3]);
AA = A(B);
works fine for me. What is the max of your B?

Sign in to comment.

Accepted Answer

Matt Tearle
Matt Tearle on 7 Mar 2011
Do you want AA to be a cell array or whatever type the contents are (assuming they're all the same)? In the former case AA = A(B) (with parentheses). In the latter, AA = [A{B}] (with curly braces).
But it sounds like your error message is a simpler issue: the values of B aren't between 1 and numel(A).

More Answers (1)

REN
REN on 7 Mar 2011
I guess my MATLAB has problem, it crashed several times last weekend.
Maybe some config files were changed?
Not sure how to restore the settings.
Thanks Matt and Daniel !

Tags

Community Treasure Hunt

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

Start Hunting!