Removing values from two different variables
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Uerm
am 10 Feb. 2020
Kommentiert: the cyclist
am 13 Feb. 2020
Hi,
I have attached two variables, AL.mat and QRS.mat. AL.mat is a 1x48 cell containing labels 0, 1 and 2. QRS.mat is also a 1x48 cell and it contains peak indices.
Basically, I want to remove all the 2's from the AL variable. Simultaneously, I want to remove the peak indices that correspond to these 2's in the QRS variable. How can I do that?
0 Kommentare
Akzeptierte Antwort
the cyclist
am 10 Feb. 2020
% For each cell of AL, find the non-2's
keepIndices = cellfun(@(x)x~=2,AL,'UniformOutput',false);
% Keep the elements of AL that are non-2's
AL_no_2 = cellfun(@(x,y)x(y),AL, keepIndices,'UniformOutput',false);
% Keep the elements of QRS that are non-2's
QRS_no_2 = cellfun(@(x,y)x(y),QRS,keepIndices,'UniformOutput',false);
7 Kommentare
the cyclist
am 13 Feb. 2020
Sure, it is possible to implement. But it won't be a few simple lines of code like your original question. And I don't think you can do the entire cell array at once. The steps will be something like
- Define a for loop that processes each element of the cell array in turn
- For each element of the cell array AL, find the indices of the 2's. (You could use the find command.)
- Use those to determine the indices just before and after that stretch of 2's
- Do the math on QRS that you describe above
In a manner of speaking, it is much more of an algorithm, than a couple slick MATLAB command.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
