就像标题一样简单。我有 nx1 大小的向量p
。我对r = p/foo - floor(p/foo)
的最大值感兴趣,foo是一个标量,所以我只是打电话:
max_value = max(p/foo-floor(p/foo))
如何获得p
的哪个值max_value
?
我想过要打电话:
[max_value, max_index] = max(p/foo-floor(p/foo))
但很快我意识到max_index
很无用。我很抱歉在这里问这个真正的初学者。
将问题分解后,我意识到值p
与我的相关向量p/foo-floor(p/foo)
中的值之间没有唯一的相关性,因此存在逻辑问题而不是语言问题。
但是,根据我的输入数据,我知道该解决方案是唯一的。我怎样才能解决这个问题? 我最终做了:
result = p(p/foo-floor(p/foo) == max(p/foo-floor(p/foo)))
看起来很糟糕,所以如果你知道其他任何方式......
答案 0 :(得分:1)
获得索引后,请使用它:
result = p(max_index)
答案 1 :(得分:0)
您可以创建一个新的向量,让您说出“已转换”的值:
p2 = (p/foo-floor(p/foo))
然后只需使用find
查找p2上的最大值:
max_index = find(p2 == max(p2))
将使用该操作的最大值返回p2的索引或索引,最后只需在p
中查找原始值p(max_index)
在1行中,这是:
p(find((p/foo-floor(p/foo) == max((p/foo-floor(p/foo))))))
这与你最后做的基本相同:)