- #1
mcquaya
- 2
- 0
I'm somewhat new to Matlab and am having issues with a nested "for" and "if" loop. My code is below. This code is combining a binary signal with a cyclic one. I'm trying to create a matrix with the amplitude condition in the first column and in the second column I want the sum of the number of data points where the binary signal reads "1" and the analog cyclic signal's value is above the amplitude condition. I know the if loop works like I want because when I isolate it it gives me the results I want.
The problem is with the for loop. The second column has all the same number when I know they should vary. Every value is equal to what the correct value is for the first row. After the first row every number is the same for some reason.
n=length(stab(:,1));
prob=zeros(2,2);
prob1=zeros(n,1)
for k=1:100
a(k)=k;
for i=1:n
if ((z2(i)>=a(k))||(z2(i)<=-a(k))) && (stab2(i)==1)
prob1(i)=1;
end
prob(k,2)=sum(prob1);
end
prob(:,1)=a;
end
The problem is with the for loop. The second column has all the same number when I know they should vary. Every value is equal to what the correct value is for the first row. After the first row every number is the same for some reason.
n=length(stab(:,1));
prob=zeros(2,2);
prob1=zeros(n,1)
for k=1:100
a(k)=k;
for i=1:n
if ((z2(i)>=a(k))||(z2(i)<=-a(k))) && (stab2(i)==1)
prob1(i)=1;
end
prob(k,2)=sum(prob1);
end
prob(:,1)=a;
end