# How to write function for above combine matrix?

3 visualizzazioni (ultimi 30 giorni)
RAHUL ANTIL il 2 Giu 2019
Risposto: Ibad Ur Rahman il 30 Mar 2022
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 CommentiMostra 13 commenti meno recentiNascondi 13 commenti meno recenti
Adam Danz il 6 Giu 2019
NOTE: The code provided above by OP is apparently incorrect and the pattern is still unexplained.
vivek jason il 23 Set 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];

Accedi per commentare.

### Risposte (7)

saurav Tiwari il 13 Giu 2020
function T=trio(n,m)
a=ones(n,m);b=2*a;c=3*a;
T=[a;b;c];
end
##### 4 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Chandan Kumar il 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 il 23 Feb 2021
When at least one of the operands is a scalar then the * operator does element by element multiplication and acts like .*

Accedi per commentare.

Adam Danz il 6 Giu 2019
Modificato: Adam Danz il 6 Giu 2019
n = 7;
m = 3;
A = repelem((1:ceil((3*n)/2))',2,m);
##### 9 CommentiMostra 7 commenti meno recentiNascondi 7 commenti meno recenti
Adam Danz il 6 Giu 2019
Ok. What patterns are you looking for? Can you explain it in words?
Walter Roberson il 6 Giu 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.

Accedi per commentare.

RAHUL ANTIL il 6 Giu 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].
##### 3 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
saurav Tiwari il 13 Giu 2020
uhhh combination rule of matrix
dpb il 13 Giu 2020
Uhhhh...which combinaton "rule" is that?
You have N copies of two but only one for the last...whassup w/ that?

Accedi per commentare.

AN Roza il 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 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Walter Roberson il 23 Apr 2020
no, this is a completely incorrect answer to the question asked by RAHUL.

Accedi per commentare.

dpb il 13 Giu 2020
Modificato: dpb il 14 Giu 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>>
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Cyrus David Pastelero il 22 Giu 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 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Adam Danz il 22 Giu 2020
Modificato: Adam Danz il 22 Giu 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.

Accedi per commentare.

Ibad Ur Rahman il 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 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Logical in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by