Asked by esmaeil keyvanloo
on 19 Apr 2019

i want to save the value of these two signals when they have an equal value in each period

i wrote this code but it's not true

a = zeros(1,14);

if signal_1 == signal_2

a(b) = signal_1

b = b+1;

end

b=mod(b,14);

code needs to define the value of "b" and if i define that it cant continues to 14

Answer by Walter Roberson
on 19 Apr 2019

Edited by Walter Roberson
on 19 Apr 2019

N = 14;

a = zeros(1, N);

b = 1;

for K = 1 : length(signal_1)

if signal_1(K) == signal_2(K)

a(b) = signal_1(K);

b = mod(b, N) + 1;

end

end

I know that mod(b,N)+1 might look wrong, but it is correct. b = 1 is sent to 2, b = 2 is sent to 3, ... b = 13 is sent to 14, b = 14 then mod(b,14) is 0 and then you add 1 to that giving 1, so b = 14 is sent to 1.

esmaeil keyvanloo
on 19 Apr 2019

thanks

your code is true, but this is a part of program and program should be run as long as conditions of if are fulfilled

Walter Roberson
on 19 Apr 2019

I have to guess about meaningful outputs of this.

function a_copy = fcn(signal_1, signal_2)

N = 14;

persistent a b

if isempty(a) || isempty(b)

a = zeros(1, N);

b = 1;

end

if signal_1 == signal_2

a(b) = signal_1;

b = mod(b,N) + 1;

end

a_copy = a;

Sign in to comment.

Answer by esmaeil keyvanloo
on 19 Apr 2019

thanks, but still needs to define b

Walter Roberson
on 19 Apr 2019

You could try adding

if isempty(b)

b = 1;

end

Sign in to comment.

Answer by esmaeil keyvanloo
on 19 Apr 2019

grateful

unfortunately, that has the same error and need to define the value of b.

Walter Roberson
on 19 Apr 2019

Perhaps you could use a global block to store a and b

Or make them signals that are given initial values and which feed back into the block. Just make sure that you have a unit delay block so you do not accidentally create an algebraic loop.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Raj (view profile)

Direct link to this comment:https://ch.mathworks.com/matlabcentral/answers/457323-how-i-can-save-the-value-of-two-signals-when-they-are-equal#comment_695866

## esmaeil keyvanloo (view profile)

Direct link to this comment:https://ch.mathworks.com/matlabcentral/answers/457323-how-i-can-save-the-value-of-two-signals-when-they-are-equal#comment_695882

Sign in to comment.