matlab - How to generate a customized checker board matrix as fast as possible? -


i need function creates checker board matrix m rows , n columns of p*q rectangles. modified third solution here that:

function [i] = mycheckerboard(m, n, p, q) nr = m*p; nc = n*q; = floor(mod((0:(nc-1))/q, 2)); j = floor(mod((0:(nr-1))/p, 2))'; r = repmat(i, [nr 1]); c = repmat(j, [1 nc]); = xor(r, c); 

it works no problem:

i=mycheckerboard(2, 3, 4, 3)  =  0 0 0 1 1 1 0 0 0  0 0 0 1 1 1 0 0 0  0 0 0 1 1 1 0 0 0  0 0 0 1 1 1 0 0 0  1 1 1 0 0 0 1 1 1  1 1 1 0 0 0 1 1 1  1 1 1 0 0 0 1 1 1  1 1 1 0 0 0 1 1 1 

but it's not fast enough since there lots of calls of function in single run. there faster way result? how can remove floating point divisions and/or calls of floor function?

i suggest first creating binary matrix checkerboard's fields, using built-in kron blow necessary size:

m = 2; n = 3; p = 4; q = 3; [im,in] = meshgrid(1:m,1:n); = zeros(m,n); a(mod(im.'+in.',2)==1) = 1; board = kron(a,ones(p,q)) 

Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -