Trying to build a new nx4 array from an existing nx4 array using logical values
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a large nx4 array of quaternions (quatAB). I also have an nx1 array of energies (en) associated with the quaternions i.e. the nth quatAB corresponds to the nth en.
I have used MATLAB's islocalmin function on the energy array to return logical values. This returns a True (1) value if the energy (en) value is a local minimum, and a False if the energy is not a local minimum. After creating the nx1 array of logical values, I applied it to the en array to build a new en array of the local minimum energy values. Now, I want to do the same thing with the quaternions, but I am only getting the first column of each row, and i need all 4 columns.
min = islocalmin(en, 'MinProminence',1);
min_en = en(min);
min_quatAB = quatAB(min);
This successfully identifies the rows of the quaternions that I want to output, but when I apply the logical values, I'm only getting the first column element of each.
0 Kommentare
Antworten (2)
Sulaymon Eshkabilov
am 3 Jun. 2021
Don't use MATLAB's builtin function and comamnd names for variables, e.g.: min is builtin fcn of MATLAB.
0 Kommentare
James Tursa
am 8 Jun. 2021
Bearbeitet: James Tursa
am 8 Jun. 2021
Assuming quatAB is a standard numeric matrix, use your logical variable for the first index and colon for the second index:
m = islocalmin(en, 'MinProminence',1);
min_en = en(m);
min_quatAB = quatAB(m,:);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Specialized Messages 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!