How to convert rows to logical
Ältere Kommentare anzeigen
I am filtering a set of values in a column vector in multiple steps. In the end, I get the row numbers of the values that should be kept, eg.:
A = 1:10;
%fitering happens
r = [2 7 8]; %the rows to keep
Now for subsequent calculations, I need A with only the filtered values, and 0's in the other values. At the moment I do it like this:
filter = ~min(logical(abs(A-r(:))),[],1)
Afiltered = A.*filter
However this method isn't that elegant so I was wondering if there are some standard functions / quicker ways to get the same?
Due to the nature of the filters, it is not possible to work with masks that have the same length as A. r will always be shorter than A.
Akzeptierte Antwort
Weitere Antworten (1)
I'm not aware of a special function for this, but perhaps a more readable way would be this?
A = 1:10;
r = [2 7 8];
Afiltered=zeros(1,length(A));
Afiltered(r)=r
1 Kommentar
Simon Allosserie
am 27 Okt. 2022
Kategorien
Mehr zu Digital Filter Analysis finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!