problem for creating vector with for loop
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
sermet
am 29 Apr. 2014
Kommentiert: José-Luis
am 29 Apr. 2014
a={'w','c','e'};
%I wanna create 2 times of w,c,e, with using for loop, like this
aa={'w','w','c','c','e','e'};
0 Kommentare
Akzeptierte Antwort
José-Luis
am 29 Apr. 2014
a={'w','c','e'};
nRep = 5;
your_mat = reshape(repmat(a,nRep,1),1,[]);
0 Kommentare
Weitere Antworten (2)
Justin
am 29 Apr. 2014
Bearbeitet: Justin
am 29 Apr. 2014
This is not a difficult task to do but does take a little extra planning in how to index the first array.
I'll give you an example of one way to do it but you should try another way as well.
% first define aa as an empty cell
aa = {};
% then create a loop for each element of your original matrix
for i = 1:length(a)
% now concatenate your aa array with the repeated elements of a (you can just write a(i) twice)
aa = [aa a(i) a(i)];
end
Other options may be to use repmat, reshape, or indexing differently using a modulo of 2 to increment your index of the original array.
Some of these options will be more robust and able to work when you want to make a triple copy or other elements of your input vary.
1 Kommentar
Jos (10584)
am 29 Apr. 2014
Many roads to Rome:
A = {'w' 'c' 'e'}
n = 2
AA1 = A(kron(1:numel(A),ones(1,n)))
AA2 = reshape(repmat(A,n,1),1,[])
AA3 = A(ceil(linspace(1/n,numel(A),n*numel(A))))
1 Kommentar
José-Luis
am 29 Apr. 2014
:)
Maybe we should start a thread with the most complicated ways to solve this problem.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!