How to separate a matrix randomly

10 vues (au cours des 30 derniers jours)
zaki
zaki le 30 Nov 2014
Hello everyone, I want to ask how to separate a matrix randomly. For example, I have a matrix
A = [...
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1]
and I need a C1 and C2 matrix:
C1 =
0 0 0 0
0 0 0 0
1 0 0 1
0 1 1 0
C2 =
0 0 0 0
0 0 0 0
0 1 1 0
1 0 0 1
Is it possible we can generate them by separating the 1 digit randomly?
Thanks before :)

Réponse acceptée

Stephen23
Stephen23 le 1 Déc 2014
Randomly allocate all values from one matrix to two other matrices:
>> A = [0,0,0,0;0,0,0,0;1,1,1,1;1,1,1,1];
>> B = 0.5<rand(size(A));
>> C1 = zeros(size(A)); C2 = zeros(size(A));
>> C1(B) = A(B);
>> C2(~B) = A(~B);
If you only require the last two rows of values, then you can "&" the index with another logical matrix giving the restrictions that you require.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 1 Déc 2014
C1 = randi([0 1],size(A)).*A;
C2 = A - C1;

Catégories

En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by