Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

cells related

1 vue (au cours des 30 derniers jours)
KSSV
KSSV le 12 Avr 2012
Clôturé : MATLAB Answer Bot le 20 Août 2021
Hi all
I have 450 matrices of order 4X2. I am saving them in a cell on the name, say Vn. So size of Vn is 450X1. And size of each cell is 4X2. Now I want to run a loop and pick the elements randomly from Vn. For example I want to pick 1, 2, 3, 4 rows from the cells 1, 2, 31 , 32. I can access these elements in the way:
Vn{1}(1,:), Vn{2}(2,:), Vn{31}(3,:) etc. As I am running a loop and picking the values randomly, this kind of calling the rows may take long time for the code to run task. Is there any fast / best way to do this?
Thanks in advance Sreenu

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 12 Avr 2012
variant
numcell = randperm(numel(Vn),4);
rows1 = 1:4;
datarnd = arrayfun(@(x,y)Vn{x}(y,:),numcell,rows1,'un',0);
out = cat(1,datarnd{:});

Plus de réponses (1)

Richard
Richard le 12 Avr 2012
pre-allocate memory first, this may speed it up.
  1 commentaire
KSSV
KSSV le 12 Avr 2012
Yes it is pre allocated. But thing is some times I may pick two rows from two matrices, or o row from one matrix etc,..it is random...

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by