how to combine matrixes

2 visualizzazioni (ultimi 30 giorni)
Sharen H
Sharen H il 27 Feb 2013
I have to combine two matrices for example
a=[10 20 30 40 50 60]
b=[11 22 33 44 55 66]
based on some random seed for example r =2 ,combine 2 values from the matrix a and b to form a output matrix
c=[10 20 11 22 30 40 33 44 50 60 55 66]
Please help me

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 27 Feb 2013
a=[10 20 30 40 50 60]
b=[11 22 33 44 55 66]
r=2
out=[reshape(a,r,[]);reshape(b,r,[])]
out=out(:)'

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 27 Feb 2013
Modificato: Azzi Abdelmalek il 27 Feb 2013
General case
a=[10 20 30 40 50 60];
b=[11 22 33 44 55 66];
r=randi(numel(a));
id=r-mod(numel(a),r);
if id~=r
a(end+1:end+id)=nan;
b(end+1:end+id)=nan;
end
out=[reshape(a,r,[]);reshape(b,r,[])];
out=out(:)';
out(isnan(out))=[]
  2 Commenti
Sharen H
Sharen H il 27 Feb 2013
this code gives an error called Undefined function or method 'randi' for input arguments of type 'double' what does it mean
Azzi Abdelmalek
Azzi Abdelmalek il 27 Feb 2013
Your version of Matlab does not support rndi, then instead of r=randi(numel(a)); use
[~ ,r]=max(rand(1,numel(a)))

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by