Borrar filtros
Borrar filtros

How to randomly exchange 2 entries in a column?

2 visualizaciones (últimos 30 días)
Grace
Grace el 1 de Oct. de 2014
Respondida: Star Strider el 1 de Oct. de 2014
Hi, I have
a=[ 1 2;
3 4;
2 1;
4 5;
5 3]
I want to choose randomly any 2 entries from a column and exchange them. For example, I randomly choose entries 2 and 5 from the second column, exchange these two entries to become
b=[ 1 5;
3 4;
2 1;
4 2;
5 3]
How am I going to make this? Thanks in advance.

Respuesta aceptada

Star Strider
Star Strider el 1 de Oct. de 2014
This seems to work:
[r,c] = size(a); % ‘a’ Row, Col Size
cc = randi(c); % Choose Random Column
rc = randi(r, 1, 2); % Choose Random Rows
b = a; % Create ‘b’
b(rc,cc) = a(fliplr(rc), cc) % Swap Rows of Chosen Column

Más respuestas (0)

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!

Translated by