У меня есть простая проблема, и мне было интересно, есть ли более быстрый способ (т. Е. Однострочный или менее строк кода), чтобы получить последние значения X, которые являются истинными из логического вектора.
вот что у меня есть:
%define variables
vec=logical([0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1]);
lastX=3;
%my approach
idx=find(vec); %find indices of values that are true
idx=idx(end-lastX+1:end); %find last X true values
vec(setxor(1:size(vec,2),idx))=0; %get values that are not in idx, set them false
vec %display output, should report [0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1]