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 :)

 Akzeptierte Antwort

Stephen23
Stephen23 am 1 Dez. 2014

1 Stimme

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.

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 1 Dez. 2014

0 Stimmen

C1 = randi([0 1],size(A)).*A;
C2 = A - C1;

Kategorien

Gefragt:

am 30 Nov. 2014

Beantwortet:

am 1 Dez. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by