MATLAB Answers

How to select/highlight a cell/row in the uitable programmatically?

237 views (last 30 days)
Vyshakh Pv
Vyshakh Pv on 20 Aug 2018
Commented: Vyshakh Pv on 2 May 2019
I am working with 3 big XLS files, each opened in 3 uitable. When i click on a cell of any of the uitable, row with matching time from other 2 tables should be highlighted.
If the row is not visible, _ uitable_ should scroll accordingly.
So, how to programmatically highlight a row or column of a uitable?
If it is impossible, is there any other solution to the problem??


Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 20 Aug 2018
Edited: Adam Danz on 20 Aug 2018
Here's an explanation of how to programmatically select a cell from a UI table.
The workflow you'll follow for your description is this
  • For each UItable, within the CellSelectionCallback, get the currently selected cell coordinates.
  • Within the same callback function, use those coordinates to set the other UI tables (see link above).
I'm not sure if this will automatically scroll or not, though. If you get stuck, follow-up with a comment below.


Show 2 older comments
Vyshakh Pv
Vyshakh Pv on 5 Dec 2018
Some feedbacks.
  • it cant scroll bacxkwards (ie if 100th cell is selected, and next time if i want to selct 50, it scrolls one by one and finally reach 50, instead of jumping to 50)
  • Very Slow in execution. (on close inspection I found lots of pause() in findjobj())
Adam Danz
Adam Danz on 5 Dec 2018
Thanks for the feedback, Vyshakh. I'm using matlab 2018a and when I select a row higher up in the table, the table jumps to that row as expected. I wonder if this is a difference in matlab versions or if there's something in your code causing that.
Matlab's findobj() function is not open source so I'm not sure how you found lots of pause() in that function. If you mean that the findobj() function takes too much time, you could set up your code so that the object is stored in a persistent variable so your code only has to find it once.
Vyshakh Pv
Vyshakh Pv on 2 May 2019
  1. Error in Jumping to previous row due to my coding, its fixed and working fine now
  2. I was talking about findjobj() (mentioned in the link shared by you) not findobj().

Sign in to comment.

More Answers (0)