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

 채택된 답변

Bojan
Bojan 2014년 3월 28일

0 개 추천

H2 = H;
H2([1:2:end,2:2:end])=H;
this is the solution !

추가 답변 (1개)

Niklas Nylén
Niklas Nylén 2014년 3월 28일
편집: Niklas Nylén 2014년 3월 28일

1 개 추천

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

Bojan
Bojan 2014년 3월 28일
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.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

질문:

2014년 3월 28일

답변:

2014년 3월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by