assign data satisfied rules given

2 visualizaciones (últimos 30 días)
Sahab
Sahab el 11 de Mayo de 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 comentario
Jan
Jan el 11 de Mayo de 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.

Iniciar sesión para comentar.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 11 de Mayo de 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 comentarios
Sahab
Sahab el 11 de Mayo de 2011
thanks andrei bobrov your answer is like i need.
Jan
Jan el 11 de Mayo de 2011
@Andrei: You are bold. I was too shy to guess what the question would mean exactly.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by