Creating a data matrix that self generates.

I want to create a 10x10 matrix using 0(x99) & 1(x1) that will randomly regenerate 'n' times. I also want to count when 1 changes position within the matrix.
For example:
Original: 1st Gen: 2nd Gen:
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Counter = 0 Counter = 1 Counter = 2
Can anyone think of a way to do this?
Thanks,
Joe

답변 (1개)

Stijn Haenen
Stijn Haenen 2020년 5월 18일

1 개 추천

somthing like this:
count=0;
m=zeros(100,1);
rand_int=datasample(1:100,1);
m(rand_int)=1;
old_matrix=reshape(m,[10 10]);
for i=1:10
m=zeros(100,1);
rand_int=datasample(1:100,1);
m(rand_int)=1;
new_matrix=reshape(m,[10 10]);
if sum(abs(old_matrix-new_matrix),'All')>0
count=count+1;
end
old_matrix=new_matrix
end

댓글 수: 1

Joseph Lee
Joseph Lee 2020년 5월 18일
Yes thats exactly what I asked for thanks.
Do you know how I could modify this script so that the 1 can only move one digit from the position it is currently at per generated matrix?
Also is there a way of setting an alarm if the 1 doesn't move from its position for x number of generated matricies and resetting said alarm when its position moves?
Many thanks,
Joe

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2020년 5월 18일

댓글:

2020년 5월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by