Matlab:识别数组中特定数字的最后一个。

huangapple go评论94阅读模式
英文:

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.

huangapple
  • 本文由 发表于 2023年6月8日 22:18:23
  • 转载请务必保留本文链接:https://go.coder-hub.com/76432814.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定