How to write function for above combine matrix?
    10 views (last 30 days)
  
       Show older comments
    
A = [2,4]
A = [1 1 1 1 ; 1 1 1 1; 2 2 2 2; 2 2 2 2;  3 3 3 3; 3 3 3 3] 
what will be the funtion for A= [7,4]
or using any random variable?
A should give  (3n by m) matrix
15 Comments
  Adam Danz
    
      
 on 6 Jun 2019
				NOTE:  The code provided above by OP is apparently incorrect and the pattern is still unexplained.  
  vivek jason
 on 23 Sep 2019
				This is what I came up with ...Hope this helps!!!
function T= trio(n,m);
n=3*n;
T1= ones(n/3,m);
T2= 2*ones(n/3,m);
T3= 3*ones(n/3,m);
T= [T1;T2;T3];
Answers (7)
  saurav Tiwari
 on 13 Jun 2020
        function T=trio(n,m)
a=ones(n,m);b=2*a;c=3*a;
T=[a;b;c];
end
4 Comments
  Chandan Kumar
 on 23 Feb 2021
				function T=trio(n,m)
a=ones(n,m);b=2.*a;c=3.*a;
T=[a;b;c];
he should have added dot to perform array multiplication. 
  Walter Roberson
      
      
 on 23 Feb 2021
				When at least one of the operands is a scalar then the * operator does element by element multiplication and acts like .*
  Adam Danz
    
      
 on 6 Jun 2019
        
      Edited: Adam Danz
    
      
 on 6 Jun 2019
  
      n = 7;
m = 3;
A = repelem((1:ceil((3*n)/2))',2,m);
9 Comments
  Walter Roberson
      
      
 on 6 Jun 2019
				Change Adam's ceil() to floor(). Then at the end if size(A,1) is not a multiple of 3, append 3-mod(number_of_rows,3) copies of a row with the next integer.
  RAHUL ANTIL
 on 6 Jun 2019
        3 Comments
  dpb
      
      
 on 13 Jun 2020
				Uhhhh...which combinaton "rule" is that?
You have N copies of two but only one for the last...whassup w/ that?
  AN Roza
 on 23 Apr 2020
        V. Given
3157926
5502222
221810.58
7925651
5511591
1172396
00.50.370.20.10.9
x
Write the answer of the following comment:
a. x(3,5)
b. x(7,7)
c. x(1:5, :)
d. x(1:end, :)
1 Comment
  Walter Roberson
      
      
 on 23 Apr 2020
				no, this is a completely incorrect answer to the question asked by RAHUL.
  dpb
      
      
 on 13 Jun 2020
        
      Edited: dpb
      
      
 on 14 Jun 2020
  
      " want above pattern, matrix size is [21,3]."
ADDENDUM/ERRATUM:
[But we have now learned that that is NOT even the correct description of the assignment -- there is no "odd man out" in the desired result, the output is always a multiple of 3x the requested N so there is never an odd set.]
Original solution moved to end solves the problem as first described simply to reproduce a given stated output; will leave but the problem described is solved as
function T=trio(n,m)
% build 3*n x m output matrix with thirds of vectors of 1, 2, 3, respectively.
  T=kron([1:3].',ones(n,m));
end
I would suggest NOT turning in the above Answer to a homework assignment, however -- is NOT going to pass the smell test of something most beginning students will have come up with on own.
"Just sayin'..." :)
END ADDENDUM/ERRATUM --
ORIGINAL ANSWER FOLLOWS...BUT ANSWERS DIFFERENT QUESTION/PATTERN
R=21;C=3;N=2;                       % define parameters, R, C, repeat count
P=kron([1:ceil(R/N)].',ones(N,C));  % pattern complete N*ceil(R/N) rows
P=P(1:R,:);                         % fixup for odd man out if mod(R,N)~-0
results in
>> P=kron([1:ceil(R/N)].',ones(N,C)); P=P(1:R,:)
P =
     1     1     1
     1     1     1
     2     2     2
     2     2     2
     3     3     3
     3     3     3
     4     4     4
     4     4     4
     5     5     5
     5     5     5
     6     6     6
     6     6     6
     7     7     7
     7     7     7
     8     8     8
     8     8     8
     9     9     9
     9     9     9
    10    10    10
    10    10    10
    11    11    11
K>> 
0 Comments
  Cyrus David Pastelero
 on 22 Jun 2020
        function T = trio(n,m)
   T1 = ones(n,m); //this just creates the body for us to use, you can also use zeros
   T = [T1;T1+1;T1+2]; //adding them base on the required output
end
1 Comment
  Adam Danz
    
      
 on 22 Jun 2020
				
      Edited: Adam Danz
    
      
 on 22 Jun 2020
  
			This doesn't even come close to producing the desired outputs.  
To come closer, you would need a 3rd input to indicate the number of replications and then you could use that 3rd input to produce T instead of manually concatenating replications of T1.
But even then the function wouldn't be doing what the OP is asking for. 
  Ibad Ur Rahman
 on 30 Mar 2022
        I got the following answer to this question.....
function T=trio(n,m)
a=ones(n,m);
b=2*ones(n,m);
c=3*ones(n,m);
T=cat(1,a,b,c);
end
0 Comments
See Also
Categories
				Find more on Matrix Indexing 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!









