|
|
clear; clc; close all;
X3 a, h. `% _. {& b. Xn = 30;
% |- L% l- j% _' T8 W4 b" N$ oMin = 2; Max = 6;
0 v& U5 d9 Z& I' A& SM = zeros(n+1,n+1);
+ c' _) _% u1 N1 ^ii = 2;
9 h w* s2 G8 G( K; N- v* Q7 {while ii <= n+1
# S0 N! K& p3 U: C( ^# s4 K ExistingNumberOfOne = sum( M(1:1:ii-1,ii) ); f, o2 s" i9 X# A* S( N" g% q
TotalNumberOfOne = randi([Min Max],1,1);
7 G( v4 B8 r3 d- N6 I& ~ if TotalNumberOfOne < ExistingNumberOfOne || ExistingNumberOfOne > Max
4 W, B2 U0 b- y1 b0 [: T ii = 2;
3 b9 @ w, Q/ z8 e5 ?* J- A M = zeros(n+1,n+1);- s! X1 Y+ ?" L9 _0 d" z
else$ k" U2 o' y! o
idx = randperm(n-ii+2,min([TotalNumberOfOne - ExistingNumberOfOne, n-ii+2]));
4 R) I- K4 v( R/ D" G0 y6 r tempArray = zeros(1,n-ii+2); tempArray(idx) = 1;) } Y t! }, M( P
M(ii,ii:end) = tempArray;
$ P1 B% X# `6 @2 ]6 i e4 Z ii = ii + 1;9 Z" D# g3 g/ N5 c" ~
end" t) U5 K$ ~4 R4 k& I
end
2 O/ h& a7 H* `! N/ b% qM = M(2:end,2:end);
. k, k. ^: L% m5 S- B6 ?" MU = triu(ones(n),1); D = diag(M);% H1 U0 a+ u: W" Z7 t8 J
M = M.*U;! @( `5 {! v9 t) }8 F; C
M = M' + M + diag( D );6 E6 n- P5 l3 H. \, z j
if sum( Min<=sum(M) & sum(M)<=Max ) == n
( b( M+ p z4 T disp( M );+ ? i$ }. K% x; {8 W! k& f5 f
end |
|