我在函数中有一个循环,其吐出类似于以下内容的值:
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
任何帮助将不胜感激!
答案 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