run through a cell content in single loop

2 Ansichten (letzte 30 Tage)
REN
REN am 7 Mär. 2011
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 Kommentar
Daniel Shub
Daniel Shub am 7 Mär. 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?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt Tearle
Matt Tearle am 7 Mär. 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).

Weitere Antworten (1)

REN
REN am 7 Mär. 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 !

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by