# I want to create a binary matrix with a variable dimensions

조회 수: 4(최근 30일)
Nir Vaishnav 2022년 8월 11일
댓글: David Hill 2022년 8월 11일
I want to create a binary matrix of dimension k x M where k and M are user defined.(k is the number of rows and M is the number of column). And number of zeros and ones in each row are user defined. Also this binary matrix should be a function.
##### 댓글 수: 3표시숨기기 이전 댓글 수: 2
Nir Vaishnav 2022년 8월 11일
for kk=1:lnk
m = input('How many zeroes do you need \n');
n = input('how many ones do you need\n');
lnk=nchoosek(m+n,n);
i=n+m;
if i<=1
disp('size of binary sequence is out of range');
else
%Binary sequence contains m zeros and n ones in any order
x1=zeros(1,m);
x1(randn(i,n))=1
%count down the number of switches in such a Binary sequence x1;
end
end
This is what i have done but it creates only arrays i dont understand how to make it into a matrix. and then convert into a function

댓글을 달려면 로그인하십시오.

### 답변(1개)

David Hill 2022년 8월 11일
편집: David Hill 2022년 8월 11일
k=10;
M=50;
O=randi(M+1,k)-1;%number of ones per row (number of zeros per row= 50 - O)
for n=1:k
m=[ones(1,O(n)),zeros(1,M-O(n))];
Matrix(n,:)=m(randperm(M));
end
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
David Hill 2022년 8월 11일
You just need to clear Matrix or set Matrix = [ ] at the beginning.
k=10;
M=50;
Matrix=[];
O=randi(M+1,k)-1;%number of ones per row (number of zeros per row= 50 - O)
for n=1:k
m=[ones(1,O(n)),zeros(1,M-O(n))];
Matrix(n,:)=m(randperm(M));
end

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!