Info

この質問は閉じられています。 編集または回答するには再度開いてください。

cells related

2 ビュー (過去 30 日間)
KSSV
KSSV 2012 年 4 月 12 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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

採用された回答

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

その他の回答 (1 件)

Richard
Richard 2012 年 4 月 12 日
pre-allocate memory first, this may speed it up.
  1 件のコメント
KSSV
KSSV 2012 年 4 月 12 日
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...

この質問は閉じられています。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by