How to randomly change element of matrix?
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ammy
el 14 de Sept. de 2021
Comentada: Ammy
el 14 de Sept. de 2021
I have an n×n matrix.
I want to randomly change the element of A at random position.
The element of matrix can be from 0 to 1000
I used randi(1000) for random entry
I want to repeat this process 100 times to get 100 new matrices and save all these matrices in a separate folder
for i= 1:I00
0 comentarios
Respuesta aceptada
the cyclist
el 14 de Sept. de 2021
I'll illustrate for an nxn where n = 3, and repeat 2 times:
% Set the random number generator seed, for repeatability here
rng default
% Size of matrix
n = 3;
% Starting matrix -- use your real data instead
M = magic(n);
% Loop two times
for ii = 1:2
% Chose random element index (using linear index)
rndIdx = randi(n*n);
% Change the random element to a random value from 1:1000 (which I guess is what you want?)
M(rndIdx) = randi(1000)
% Put save step here, if you want to save each one
end
This code keep going forward from the original matrix, changing elements one at a time (but sometimes it could overwrite the same location more than once). You'll need to adjust the code if you want to start from M, save, start from original M again, etc.
But hopefully you get the idea.
3 comentarios
the cyclist
el 14 de Sept. de 2021
% Set the random number generator seed, for repeatability here
rng default
% Size of matrix
n = 3;
% Starting matrix -- use your real data instead
M = magic(n);
% Loop two times
for ii = 1:2
% Chose random element index (using linear index)
rndIdx = randi(n*n);
% Change the random element to a random value from 1:1000 (which I guess is what you want?)
Mnew = M;
Mnew(rndIdx) = randi(1000)
% Put save step here, if you want to save each one
end
Más respuestas (1)
Fabio Freschi
el 14 de Sept. de 2021
You can use linear indexing
% your matrix
A = rand(10,100);
% create the folder
mkdir('storage');
% loop
for i = 1:100
% random matrix
Arand(randi(numel(A))) = rand;
% save
save(strcat('./storage/mymatrix',num2str(i),'.mat'));
end
2 comentarios
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices 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!