从函数中提取值

时间:2019-06-13 06:50:08

标签: matlab

我在函数中有一个循环,其吐出类似于以下内容的值:

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

i = 1,2,3,4,5

我正在尝试提取E变为负值的位置,然后确定它之前的位置。

我的尝试有点像 finalPos = find(i(E <0));

首先,这似乎不太正确(我的matlab语法知识很差) 但是其次,即使它确实起作用,它也会告诉我E小于0的所有位置,我只想知道E不再为正之前的位置。即E = 1,i = 3

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

检查以下内容:

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

答案 1 :(得分:0)

对于最后一个正值 您可以使用变量存储最后一个值

示例:-

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

finalpos=-1  


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

finalpos