Azzera filtri
Azzera filtri

assign data satisfied rules given

1 visualizzazione (ultimi 30 giorni)
Sahab
Sahab il 11 Mag 2011
i want to insert data randomly and it data must satisfied the rules given. for example, i want to insert 3 type of data (33,22,11) randomly in 22x7 and it must satisfied the rules. let assume i already have data that contain 33,22,11(data) randomly in 22x7 and saved in mat files.how to create a function that satisfied the rules to update that data
(there have 7 column and 22 row)
for every column there should satisfied,
Rules 1
11>=60% of 22
22<=20% of 22
33<=20% of 22
Rules 2
for every row,there must have only one data of 44.
  1 Commento
Jan
Jan il 11 Mag 2011
The question is unclear. What does "insert 3 type of data (33,22,11) randomly in 22x7" mean? "11 >= 60% of 22"?! 11 is greater than 60% of 22 (==13.2), but 22 is never smaller equal 20% of 22.
At first you state, that you want to insert 3 types of data, but in the last line a 4th value (or type?) appears suddenly.
Please edit your question and clarify your problem with more details.

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 11 Mag 2011
variant for rules 1
szAA = [22 7];
n2233 = randi(floor(szAA(1)*.2),2,szAA(2));
N = [22-sum(n2233);n2233];
B = cell2mat(arrayfun(@(x)cat(3,randperm(22)',[11*ones(N(1,x),1);22*ones(N(2,x),1);33*ones(N(3,x),1)]),1:size(N,2),'un',0));
AA = B(sub2ind(szAA,B(:,:,1),cumsum(ones(szAA),2))+prod(szAA));
rules 2, so?
AA(sub2ind(szAA,1:szAA(1),randi(szAA(2),1,szAA(1))))=44;
  2 Commenti
Sahab
Sahab il 11 Mag 2011
thanks andrei bobrov your answer is like i need.
Jan
Jan il 11 Mag 2011
@Andrei: You are bold. I was too shy to guess what the question would mean exactly.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by