matrix look up issue
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jo Betteley
am 7 Feb. 2018
Kommentiert: John D'Errico
am 8 Feb. 2018
I have a large matrix which has RPM in the first column and Torques populating the rest of the matrix. I need help finding a way to search the first column for a set rpm and then search that row for value of torque, from that i need the position of that value in the matrix to then find an efficiency value in an identical sized matrix.
I have so far:
RPM_val =1000; [row] = find(T_T==RPM_val)
This gives me the row where the 1000rpm is, how do i then search just that row for the value of torque i am after,or the nearest value to it.
Thank you
0 Kommentare
Akzeptierte Antwort
John D'Errico
am 7 Feb. 2018
Bearbeitet: John D'Errico
am 7 Feb. 2018
Time to learn about matrix indexing?
[row] = find(T_T==RPM_val)
First of all, this searches the ENTIRE matrix for a value equal to RPM_val. If it turns out that another column happens to hit that value, you will get the wrong answer. While that might be a spectacularly unlikely event, or so you think, something as silly as this is the source of many a bug. Good code avoids obvious bugs by careful planning.
So instead, do this:
[row] = find(T_T(:,1)==RPM_val);
That searches only the first column. Be careful though. What is there is no exact match? find will return empty then. Do you want to find the closest?
Once you do have the row, then consider what this does:
T_T(row,2:end)
That extracts a vector of elements only in the indicated row, excluding the first column. How might you use that in a secondary search using find?
5 Kommentare
John D'Errico
am 8 Feb. 2018
Exactly. Don't invest more time or effort in something that does not need it. Programming time is important. If the gain is small, invest your mental energy where you will realize a useful gain.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!