Special matrix with zeros and ones

9 views (last 30 days)
ABDULAZIZ
ABDULAZIZ on 6 Mar 2015
Edited: ABDULAZIZ on 6 Mar 2015
Hello Everyone,
I have a special matrix and can not create it in faster way
The example of a matrix is as follows:
m=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]
I can build it up by using ones and zeros, but it will take me a long time to do that, specially when I have a very big matrix.
Thanks in advance.
  2 Comments
Jan
Jan on 6 Mar 2015
I've formatted your code.
James Tursa
James Tursa on 6 Mar 2015
It's going to take us even longer unless we know the pattern rules. Can you explain a bit more about what the pattern is for a "very big matrix"?

Sign in to comment.

Accepted Answer

Jan
Jan on 6 Mar 2015
Edited: Jan on 6 Mar 2015
Are you looking for kron?
kron(eye(4), ones(1, 4))
kron is not efficient. This might be faster, but less nice:
n = 4;
ind = repmat(n, 1, n*n-1);
ind(n:n:n*n-1) = n + 1;
M = zeros(n, n*n);
M(cumsum([1, ind])) = 1;

More Answers (2)

Rodney Buller
Rodney Buller on 6 Mar 2015
Have you given this a try?
m=zero[4 16] m(1,1:4)=1; m(2,5:8)=1; m(3,9:12)=1; m(4,13:16)=1;
Assign a matrix as large as you need then, assigning values afterwards. variable(row,column)=assignment val
  1 Comment
ABDULAZIZ
ABDULAZIZ on 6 Mar 2015
Edited: ABDULAZIZ on 6 Mar 2015
Thank you,
This answer is correct , but it will take too much time for data entry when I have a very big matrix. Thanks again for your effort

Sign in to comment.


ABDULAZIZ
ABDULAZIZ on 6 Mar 2015
Thanks Jan Yes 100%, that what I have been looking for. Thank you very so much.

Community Treasure Hunt

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

Start Hunting!