2016-07-10 5 views
0

Я хотел запустить эту строку, но, к сожалению, она вызывает ошибку. Есть идеи?Переменная не определена

Неопределенная функция или переменная mr.

Ошибка Playground (строка 23)
X = min(mr);

j = 1; 

for i = 1:(resolution1+1) 
    line(i) = m(a(1))*ab(i)+c; 
end 

for i = 1:(resolution1) 
    if or(or(line(i)>ab_y(i) & line(i+1)<ab_y1(i+1),line(i)<ab_y1(i)& line(i+1)>ab_y1(i+1)),line(i)==ab_y1(i)) 
     mr(j) = ab1(i); 
     rk(j) = ab_y1(j); 
     j = j+1; 
    end 
end 

X = min(mr); 
Y = max(mr); 
+0

ну, он определен ** только если ** '(или (строка (i)> ab_y (i) & line (i + 1) ab_y1 (i + 1)), строка (i) == ab_y1 (i)) 'оценивается до 1. Когда он оценивает значение 0,' mr (j) = ab1 (i); 'не выполняется. –

ответ

0

Ваше состояние:

or(or(line(i)>ab_y(i) & line(i+1)<ab_y1(i+1),line(i)<ab_y1(i)& line(i+1)>ab_y1(i+1)),line(i)==ab_y1(i)) 

всегда возвращает ложь, так операторы внутри

mr(j)=ab1(i); rk(j)=ab_y1(j); 

никогда не выполняются. Поэтому переменная mr не существует.

Добавить оператор mr = []; перед циклом, чтобы инициализировать переменную (а также пересмотреть свое условие, почему оно всегда возвращает false).

+0

Спасибо! Я не был уверен, где произошла ошибка. Спасибо за подсказку – MatlabNewb

Смежные вопросы