2016-10-03 86 views
0

進出口使用MATLAB和我有第二列,但只有一定數量的矩陣從一個矩陣複製一定數量的另一個

1 1 
2 1 
3 1 
4 2 
5 2 
6 2 
7 1 
8 1 
9 2 
10 2 
11 2 

我如何可以複製矩陣?對方號碼將是隨機的1或2。實施例

1 1 1 |  | 1 1 1 
2 1 1 |  | 2 1 1 
3 1 1 |  | 3 1 1 
4 2 2 |  | 4 2 2 
5 2 1 | OR | 5 2 2 
6 2 1 |  | 6 2 1 
7 1 1 |  | 7 1 1 
8 1 1 |  | 8 1 1 
9 2 2 |  | 9 2 2 
10 2 2 |  |10 2 1 
11 2 1 |  |11 2 1 

如果2的第三行成爲1,列的其餘部分將成爲1.過程重複,直到它到達另一組的2

回答

0

您可以使用邏輯索引和功能randi

a = [1 1; 
    2 1; 
    3 1; 
    4 2; 
    5 2; 
    6 2; 
    7 1; 
    8 1; 
    9 2; 
    10 2; 
    11 2]; 

b = randi(2,length(a),1); %generation of random value ∈ [1,2] 
b(a(:,2)==1) = 1; %if a(:,2) = 1 b = 1; 

a = [a,b] 
0
A= [1 1 
2 1 
1 1 
4 2 
5 2 
6 2 
7 1 
8 1 
9 2 
10 2 
11 2] ; 
colLength = length (A(:,1)) ; 
thridcol = randi (2,colLength,1) 
A(:,3) = thridcol ; 

flag = 1 ; 
i = 1 ; ; 
if (sum (A(3,:) == 1) == length (A(2,:))) 
    while (flag && i < colLength) 
     A(3+i,3) = 1 ;   
     if (sum (A(3+i,:) == 2) == length (A(3+i,:))) 
      flag = 0 ; 
     end 
      i = i +1 ; 
    end 
end 
+0

但是,你沒有考慮到的情況下'A(:,2)== 1' – obchardon

相關問題