Creating a matrix with values that increase cyclically
    3 views (last 30 days)
  
       Show older comments
    
    John Moseley
 on 28 Dec 2013
  
    
    
    
    
    Commented: John Moseley
 on 29 Dec 2013
            Hello,
I would like to create a matrix with two columns. The rows 1-670 would be 1,1; rows 671-1340 rows would be 1,2; rows 1341-2010 would be 1,3. And this trend would continue through the 670 rows of 1,256. After these rows, the next 670 rows would be 2,1; the next 670 rows would be 2,2; and the next 670 rows would be 2,3. So the trend is that every 670 rows, the second column increases by one. And every 670x256 rows, the first column increases by one and the second column resets at one.
Can someone please help with this? Any hints will be helpful.
Many thanks,
John
0 Comments
Accepted Answer
  Roger Stafford
      
      
 on 28 Dec 2013
        An alternative to that is:
 m = 256;
 n = 670;
 t = (.5:m^2*n-.5)'/n;
 M = [floor(t/m),mod(floor(t),m)]+1;
3 Comments
  Roger Stafford
      
      
 on 28 Dec 2013
				 m1 = 238;
 m2 = 256;
 n = 670;
followed by either this:
 M = [reshape(repmat(1:m1,n*m2,1),[],1),...
      reshape(repmat(repmat(1:m2,n,1),1,m1),[],1)];
or this:
 t = (.5:m1*m2*n-.5)'/n;
 M = [floor(t/m2),mod(floor(t),m2)]+1;
More Answers (1)
  Roger Stafford
      
      
 on 28 Dec 2013
         M = [reshape(repmat(1:256,670*256,1),[],1),...
      reshape(repmat(repmat(1:256,670,1),1,256),[],1)];
0 Comments
See Also
Categories
				Find more on Creating and Concatenating Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!