creating a repeated matrix

1 visualizzazione (ultimi 30 giorni)
Sabbas
Sabbas il 1 Lug 2012
HI all,
I have the following code
k1=repmat({'S1'}, [3,1]) ;
k2=repmat({'S2'}, [3,1]) ;
k3=repmat({'S3'}, [3,1]) ;
k4=repmat({'S4'}, [3,1]) ;
k5=repmat({'S5'}, [3,1]) ;
k6=repmat({'S6'}, [3,1]) ;
ktotal= [k1; k2;k3;k4;k5;k6];
Is it possible to create "ktotal" with a more clever way? Probably with a loop?
thank you in advance

Risposta accettata

per isakson
per isakson il 2 Lug 2012
Modificato: per isakson il 2 Lug 2012
This is a more "clever" way:
ixs = repmat( [1:6], [3,1] );
ktotal = arrayfun( @(ii) sprintf('S%u',ii), ixs(:), 'uni', false );
However, a for-loop is probably the "best" way:
ktotal = cell( 6*3, 1 );
for ii = 1:6
ix = 3*(ii-1)+1;
ktotal( ix : ix+2 ) = {sprintf('S%u',ii)};
end

Più risposte (0)

Categorie

Scopri di più su Resizing and Reshaping Matrices 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