Clear Filters
Clear Filters

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 !

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!