random selection of a cell

Hello,
I have a cell(matrix) of size 100*100.I need to scan each column and choose 4 consecutive random cells( (1*1)*4) for assigning values.Can anyone please help me with this?
Thanks in advance

2 Comments

A short example?
I have a 100*100matrix. Suppose I take x as my random value & column say 'y'.So my selection among the 100 elements in the column should be (x:x+4, y)
ex: if x = 7, y =4
selection = (7:10, 4)

Sign in to comment.

 Accepted Answer

You got 100 columns.....you can pick any one element/ position out of it randomly using randperm.
% loop for each column
for i = 1:100
% pick element randomly
p = randperm(100,1) ;
end

3 Comments

This would give me just 1 cell,but I need 4
KSSV
KSSV on 22 Jul 2020
Edited: KSSV on 22 Jul 2020
You said you want continuously right? Then simply taken next four from them.
% loop for each column
for i = 1:100
% pick element randomly
p = randperm(100,1) ;
if p > 96
p = 96 ;
end
idx = p:p+4 ;
end
Thankyou for the answer.Idea works just fine.

Sign in to comment.

More Answers (1)

A = zeros(100,100);
something = 1;
for c = 1:100
r = randi(97) + (0:3);
A(r,c) = something;
end

3 Comments

In my case 97 wouldn't work.I do not always have 100 rows(question was generally asked).It would throw an error if I put randi (A(end))+(0:3) (A here is my array,say).
Replace "r = randi(97) ..." by
ncons = 4;
r = randi(size(A,1)-ncons+1)+(0:ncons-1)
You also specify 4 consecutive rows in your original question. Feel free if you want change 4 to something else.
Thankyou for the answer.Had to modify, but the idea helped.

Sign in to comment.

Categories

Asked:

on 22 Jul 2020

Edited:

on 22 Jul 2020

Community Treasure Hunt

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

Start Hunting!