# How to write function for above combine matrix?

3 views (last 30 days)
RAHUL ANTIL on 2 Jun 2019
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
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];

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
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);
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
T = [7,3]
T =
[ 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]
I want above pattern, matrix size is [21,3].
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, :)
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]."
[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'..." :)
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>>

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
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