# How to write function for above combine matrix?

3 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

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

Walter Roberson
on 23 Feb 2021

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

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

### Community Treasure Hunt

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

Start Hunting!