我有一个由{0}组成的维A
向量1xn
。我想要一种非常有效的方法来查找j
的最后一个元素的位置A
,以便A(j)~=A(n)
。如果A
的元素全部相等,则代码应返回n
。
示例:
如果A=[1 0 1 1 1]
,我应该2
如果A=[0 0 0 0 0]
,我应该5
如果A=[1 0 0 0 0]
,我应该1
。
答案 0 :(得分:3)
在一行中,只是为了它的乐趣:
result = min([find(A~=A(end),1,'last') numel(A)]);
答案 1 :(得分:2)
将find
与last
标志一起使用。如果find
导致空矩阵,则添加条件。
req= find(A~=A(end),1,'last');
if isempty(req) req=length(A); end