help with vectors MatLab?

1 visualizzazione (ultimi 30 giorni)
Bojan
Bojan il 28 Mar 2014
Risposto: Bojan il 28 Mar 2014
Hello!
I have a vector
H =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
I want it to be like
H= 0 1 0 1 0 1 0 1 0 1 0 1......
I tried with H(:) but it wont work, there is 17 zeros and 16 ones is that maybe a problem? Hope someone can help me . Kind regards

Risposta accettata

Bojan
Bojan il 28 Mar 2014
H2 = H;
H2([1:2:end,2:2:end])=H;
this is the solution !

Più risposte (1)

Niklas Nylén
Niklas Nylén il 28 Mar 2014
Modificato: Niklas Nylén il 28 Mar 2014
Your question is a bit unclear. If you want to create a vector H containing alternating 0's and 1's, starting and ending with 0 with the mentioned length you can do it like this:
H = [repmat([0 1],1,16) 0]
If you just want to transpose H to a row vector, which will give you H = [0 0 0 ... 1 1 1...] you can do it like this:
H = H'
As far as I know there is no build in function which will give H = [0 1 0 1 ...], for this you need some more code.
H1 = H(1:ceil(length(H)/2)); % first half of H
H2 = [H(ceil(length(H)/2)+1:end); 1]; % second half of H, add a 1 at the end to get equal lengths
H=[H1 H2];
H = H(1:end-1)' % Do not include the final 1
  1 Commento
Bojan
Bojan il 28 Mar 2014
Yes, I would like to alternate 0's ant 1's. What if I do not know length of my vector but I know that 0's are coming first and then after them 1's.

Accedi per commentare.

Categorie

Scopri di più su Performance and Memory 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