Извлечение значений из функции - PullRequest
0 голосов
/ 13 июня 2019

У меня есть цикл внутри функции, который выплевывает значения, подобные:

E = 3,2,1, -1, -2

для

i= 1,2,3,4,5

Я пытаюсь извлечь позицию, где E становится отрицательным, а затем определить шаг перед ним.

Моя попытка была чем-то вроде finalPos = find(i (E <0)); </p>

Во-первых, это просто не кажется правильным (мои знания синтаксиса в Matlab плохие), но, во-вторых, даже если это сработало, мне бы сказали все позиции, где E меньшечем 0, где я хочу знать только положение до, где E больше не является положительным.т.е. E = 1, i = 3

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Для последнего положительного значения вы можете использовать переменную для хранения последнего значения

Пример: -

E=[3,2,1,-1,-2]

finalpos=-1  


for i = 1:5
  if ( E<0)
    finalpos=E(i-1);
    break;
  end
end

finalpos
0 голосов
/ 13 июня 2019

Проверьте ниже:

E = [3,2,1,-1,-2] ;


idx = find(sign(E)==-1)  % Get the sign and get index
idx = find(E<0)          % Get by value

for i = 1:length(E)
    if sign(E(i)) == -1
        fprintf('E is Negative\n')
    else
        fprintf('E is Positive\n')
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...