101 views (last 30 days)

Suppose I have a matrix A=magic(2).

1) Each entry mutates with probability p. 2) If such mutation does occur, then with probability (1-q) a random integer between 1 and 2^2 is selected as the new value and replaces the old value.

How would I code this? I've been thinking about this for a while but I cannot come up with anything! Like, I would love to provide at least what I have so far but I haven't gotten a single clue.

Can this be coded even? At this stage it feels like it cannot be.. Thanks a lot in advance, any help is very much appreciated.

Ahmed A. Selman
on 15 Apr 2013

First what is magic(2)? I thought the smallest magic matrix comes (3-by-3) since Magic (2) doesn't satisfy the condition (sum each row=sum each column=sum each diagonal=const.). But I think you meant any matrix with possible permutation, anyway.

For a magic matrix, when you could replace such an element by an integer, selected between 1 and n^2 (n being the size of magic(n) ), it will probably be the same value in order to keep the properties of the original matrix the same.

If this condition is to be ignored in the resulting matrix, then try to initiate a (flag matrix) which is the same size as the original matrix but with all elements zeros. It works as:

- During a simple read loop, when the permutation occurs, flag stores the first permuted elements as (1,1) the second as (2,2).. etc.

- In a second loop, select or generate random integers as required, and replace the flagged elements with them.

- In a third loop, replace the remaining zeros of the flag matrix with elements from the original matrix. The flag matrix will be the required one (tho it will absolutely posses different properties than the original one).

Opportunities for recent engineering grads.

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

Start Hunting!
## 3 Comments

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/72042-how-to-code-probability-in-general#comment_143311

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/72042-how-to-code-probability-in-general#comment_143311

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/72042-how-to-code-probability-in-general#comment_143312

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/72042-how-to-code-probability-in-general#comment_143312

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/72042-how-to-code-probability-in-general#comment_143446

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/72042-how-to-code-probability-in-general#comment_143446

Sign in to comment.