# simple question

조회 수: 1(최근 30일)
Mate 2u 2012년 5월 11일
I have a array of 1's and -1's. The data is in the format of S =[ 1 1 1 1 1 -1 -1 -1 -1 1 1 1 1]
It is always changing between 1 and -1. Could somebody give me code on how to quantify howmany time it changes from on to the other. Additionally is it possible somebody could give the average of 1's per time 1's occur and average -1's per time -1's occur.

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

### 채택된 답변

Richard 2012년 5월 11일
using
ChangesN = find(diff(S))
would demonstrate where the value was changing and then to see how many time this happens:
length(ChangesN)

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

### 추가 답변(2개)

Win co 2012년 5월 11일
Hi, I suggest one method below :
Step 1) put all 1 and -1 in a vector, so according to your exemple, we will have :
S1=[1 1 -1 1 -1 1 -1]
Step 2)
count1=0;count2=0;
for i=2:length(S1),
if (S1(i)=-1) and S1(i-1)==S1(i-2)==1),
count1=count1+1;
elsif (S1(i)=1) and S1(i-1)==S1(i-2)==-1),
count2=count2+1;
end
end
Hope il help
Winn
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Win co 2012년 5월 11일
I wrote the code briefly, it's not helpful anymore if a person put a question and we give him the exact code and then he does a copy-paste. When I wrote the code, I thought he could understand my code.

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

bimal raj 2012년 5월 11일
i=find(S==1);
j=find(S==-1);
n_ptve= length(i);
n_ntve= length(j);
% this may help the 2nd part

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

### Community Treasure Hunt

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

Start Hunting!