英文:
Matlab: Identifying the Last of a specific number in an array
问题
我有一个数组,我的代码用它来决定何时执行某些函数,假设它是:
我想要识别最后的5个数字,并记录它们在数组中的位置,以便我可以计算我正在构建的小模拟中还剩多少时间。
如何最好地处理这个问题?
我知道我可以创建一个第二个循环,将除了5以外的所有元素过滤掉,但我不知道如何使用它来计算到达末尾的位置?
a = [0 1 5 5 4 4 3 9 6 5 1 0]
for x = 1:length(a)
if a(x) == 5
b(x) = 5;
else
b(x) = 0;
end
end
b = [0 0 5 5 0 0 0 0 0 5 0 0]
英文:
I have an array that my code uses to decide when to do certain functions, lets say its:
and i want to identify the last 5, and note its position in the array so that i can calculate how much time is left in the small sim im building.
What is the best way to go about this?
I'm aware i can make a second loop where all but the 5s are filtered out, but i dont know how i can use that to be able to count to the end?
a = [ 0 1 5 5 4 4 3 9 6 5 1 0]
for x = 1: legnth(a)
if a(x) = 5
b(x) = 5;
else
b(x) = 0;
end
end
b = [ 0 0 5 5 0 0 0 0 0 5 0 0]
答案1
得分: 4
如果你想知道数组 a
中最后一个 5 的位置,请使用以下方式使用函数 find
:
index = find(a == 5, 1, 'last');
第二个参数 1
表示查找一个元素。第三个参数 'last'
表示从末尾开始查找元素。
如果在数组 a
中没有值为 5 的元素,index
将是一个空数组。
英文:
If you want to know the position of the last 5 in your array a
, use the function find
as follows:
index = find(a == 5, 1, 'last');
The second argument, 1
, means find one element. The third argument, 'last'
means to find elements starting from the end.
If there's no element in a
with a value of 5, index
will be an empty array.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论