How to randomly select an element in adjacent entries in a matrix in for loop
古いコメントを表示
here's my code:
% code
for j=1:tmax
for i=1:n
if mat(i)==0 && rand() < r*(1-(zerfre)^2);
idx = 1 + fix(rand(1,1)*numel(mat));
mat(i)=mat(idx);
elseif mat(i)==1 && rand() < r*(1-(onefre)^2);
idx = 1 + fix(rand(1,1)*numel(mat));
mat(i)= mat(idx);
elseif mat(i)==2 && rand() < r*(1-(twofre)^2);
idx = 1 + fix(rand(1,1)*numel(mat));
mat(i)= mat(idx);
elseif mat(i)==3 && rand() < r*(1-(thrfre)^2);
idx = 1 + fix(rand(1,1)*numel(mat));
mat(i)= mat(idx);
elseif mat(i)==4 && rand() < r*(1-(foufre)^2);
idx = 1 + fix(rand(1,1)*numel(mat));
mat(i)= mat(idx);
elseif mat(i)==5 && rand() < r*(1-(fivfre)^2);
idx = 1 + fix(rand(1,1)*numel(mat));
mat(i)= mat(idx);
end
last=mat;
end
% code
Basically I'm updating my initial matrix mat with probability rules. What the rule does is, with some probability, it's replacing the entry with another entry that's randomly selected from the rest of the entire matrix.
Instead of this, I need to randomly select an element from an adjacent neighbourhood of entries, then replace the old entry with that.
By adjacent I mean within the closest 10*10 entries.
How would I do this?
Thanks a lot for your help!
4 件のコメント
Image Analyst
2013 年 4 月 3 日
To me it doesn't look like your code does anything like that. Can you explain what the difference is between the various "if" cases? And why you only do one of them if mat(i) is from the set [0,1,2,3,4,5]? Why should the value of mat(i) matter if you're just going to replace it with some random element within +/- 5 of index i?
Edgaris Rhomer
2013 年 4 月 3 日
編集済み: Edgaris Rhomer
2013 年 4 月 3 日
Image Analyst
2013 年 4 月 3 日
If I'm processing element 85 and I want to replace it with some other element from 75 to 95, taken at random, then what does it matter if mat(85) is 3 or 1 or pi or 42 or whatever? Who cares what it is? Yet you check for it.
Edgaris Rhomer
2013 年 4 月 3 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Psychology についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!