2017-08-17 86 views
6

ben aşağıdaki gibi hücrelerin iç içe geçmiş bir hücreyi var:Rastgele seçim: Matlab

CellArray={1,1,1,{1,1,1,{1,1,{1,{1 1 1 1 1 1 1 1}, 1,1},1,1},1,1,1},1,1,1,{1,1,1,1}};

Ben rastgele CellArray bir konumu seçmek gerekir. Tüm üyelerin CellArray numaralı konumları rastgele seçim sürecinde seçilme şansına sahip olmalıdır. Teşekkürler.

+0

Bu soruyla [** önceki benim **] arasında ufak bir bağlantı bulabilirsiniz (https://stackoverflow.com/questions/45665684/finding-number-of-all-nested-cells-in-a -kompleks-hücre) – Amin

+1

Rastgele bir yerin bazı örnekleri ne olurdu? – rayryeng

+1

Yani, her bir '1', gösterilen örnek diziye göre eşit bir seçim şansına sahip olmalı mı? – crazyGamer

cevap

9

celldisp işlevinin çıktısını alabilirsiniz.

m = 
{ 
    [1,1] = {1} 
    [1,2] = {2} 
    [1,3] = {3} 
    [1,4] = {4}{1} 
    [1,5] = {4}{2} 
    [1,6] = {4}{3} 
    [1,7] = {4}{4}{1} 
    [1,8] = {4}{4}{2} 
    [1,9] = {4}{4}{3}{1} 
    [1,10] = {4}{4}{3}{2}{1} 
    [1,11] = {4}{4}{3}{2}{2} 
    [1,12] = {4}{4}{3}{2}{3} 
    [1,13] = {4}{4}{3}{2}{4} 
    [1,14] = {4}{4}{3}{2}{5} 
    [1,15] = {4}{4}{3}{2}{6} 
    [1,16] = {4}{4}{3}{2}{7} 
    [1,17] = {4}{4}{3}{2}{8} 
    [1,18] = {4}{4}{3}{3} 
    [1,19] = {4}{4}{3}{4} 
    [1,20] = {4}{4}{4} 
    [1,21] = {4}{4}{5} 
    [1,22] = {4}{5} 
    [1,23] = {4}{6} 
    [1,24] = {4}{7} 
    [1,25] = {5} 
    [1,26] = {6} 
    [1,27] = {7} 
    [1,28] = {8}{1} 
    [1,29] = {8}{2} 
    [1,30] = {8}{3} 
    [1,31] = {8}{4} 
} 

Kullanım randi bir dizin seçmek için:

Sonucu regexp'nin daha net kullanımını önerdi @excaza için

s=evalc('celldisp(CellArray,'''')'); 
m = regexp(s, '\{[^\=]*\}', 'match'); 
  • Teşekkür: Sonra endekslerini extrcat için normal ifadeler kullanabilirsiniz
+4

başka herhangi bir üyenin konumu olabilir. Aynı sonucu 'regexp' ile de alabilirsiniz. Tartışacağım regexp (s, '\ {[^ \ =] * \}', 'eşleşme'); 'kullanıcının düzenli ifadeden ne elde ettiğini daha açık bir şekilde göstermesidir. Yine de, çok zeki, +1 – excaza

+0

@ rahnema1, @ excaza _Sanal bilginizi paylaştığınız için teşekkür ederiz. – Amin

+1

@Amin Yardım ederse memnun olun! – rahnema1