Why my variable is not defined in this scope?

5 vues (au cours des 30 derniers jours)
Abdelrhman Abdelfatah
Abdelrhman Abdelfatah le 11 Déc 2022
Réponse apportée : Dongyue le 15 Déc 2022
I have the following function
dq_k = [];
for i1 = 1:numel(d_k)
if (d_k(i1) <= dR(end) && d_k(i1) >= dR(end-1)) % greater than or equal to maximum interval
dqe1 = dR2(end); % use maximum interval value
else
for i2 = 1:L-1
if (d_k(i1) <= dR(end-i2)) && (d_k(i1) >= dR(end-i2-1))
dqe1 = dR2(end-i2);
end
end
end
dq_k = [dq_k dqe1];
end
everytime I run it inside my whole code
it gives me this error
Unrecognized function or variable 'dqe1'.
Error in Trial2222 (line 63)
dq_k = [dq_k dqe1];
And here are my input varaibles to this function
dR =
1.0000 2.5000 4.0000 5.5000 7.0000
dR2 =
1.7500 3.2500 4.7500 6.2500
d_k =
1.0000 1.0000 0.2500 -0.5000 -1.2500 -2.0000 -2.7500
  2 commentaires
Stephen23
Stephen23 le 11 Déc 2022
Check the value of L .
Abdelrhman Abdelfatah
Abdelrhman Abdelfatah le 11 Déc 2022
I put its value to be 4, and I calculated the dR and dR2 based on L value as following
m_kmax= max(m_k);
m_kmin= min(m_k);
stepsize=((m_kmax-m_kmin)/L);
if tread == 1
dR =linspace(m_kmin,m_kmax,L+1);
else
dR= stepsize + linspace(m_kmin,m_kmax,L+1);
end
dR2=zeros(1,L);
for i=1:L
dR2(i) = ( dR(i) + dR(i+1)) ./ 2;
end
But what I just figured is my function attached in this comment, which was supposeded to switch Quantizier between midrise or midtread is not actually doing what it was supposed to do, that's why I am considering adjusting it.

Connectez-vous pour commenter.

Réponses (1)

Dongyue
Dongyue le 15 Déc 2022
If the two conditions:
if (d_k(i1) <= dR(end) && d_k(i1) >= dR(end-1))
and
if (d_k(i1) <= dR(end-i2)) && (d_k(i1) >= dR(end-i2-1))
are both not met, dqe1 will not be created unless you set default value for it.

Catégories

En savoir plus sur Downloads dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by