2017-02-10 6 views
0

Почему мой код не вычисляет переменную cos_theta, а затем theta?MATLAB: Почему я не получаю никакого выхода?

Код:

alpha = alpha_min:alpha_step:alpha_max; 
cos_theta_0 = -1./(2.*alpha)+sqrt(1.+1./(4.*alpha.^2)); 
theta_0 = acos(cos_theta_0); 
hmax = (sqrt(1+4.*alpha.^2)-1)./(2.*log(2)); 

for h = 1:(K-2); 
    if h<= hmax; 
    cos_theta(h,:) = cos_theta_0- h.*log(2)./alpha; 
    theta(h,:) = acos(cos_theta(h,:)); 
    else break; 
    end 
end 
+0

Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. – dasdingonesin

+0

Также: [MCVE] (http://stackoverflow.com/help/mcve) – dasdingonesin

+0

@ dasdingonesin Извините, я не уверен в Matlab, и я стараюсь улучшить его как можно быстрее. – ElenaPhys

ответ

1

Не ясно, что вы пытаетесь сделать здесь:

h <= hmax 

Вы сравниваете постоянную 'Н' с вектором 'Hmax.

+0

спасибо, но я неправильно транскрибирую код. Скобки в порядке, но это все еще не работает. Есть идеи? – ElenaPhys

+0

Чтобы узнать, какой цикл вводится, вам необходимо указать значения альфа и K, которые вы используете. –

+0

'K = 8',' alpha_step = 0,5; alpha_min = 1; alpha_max = 10.; ', а в следующем испытании я устанавливаю' h' с той же схемой. – ElenaPhys