Changing live uitable row colours depending on value.

I'm using a live uitable object to read out data from an Arduino and write it into a table, using a callback function. I want give the rows a specific color, depending on the value in one of the columns. I did get it to work with addStyles, but I noticed that this command significantly slows down my code, to the point where it's not useable to me. Is there another way to do this, for example by changing a table property?

Antworten (2)

Voss
Voss am 25 Mär. 2024
Bearbeitet: Voss am 25 Mär. 2024
Since you are coloring by row, setting the uitable's BackgroundColor may work for you.
You can use a matrix of colors. Example:
figure
t = uitable('Data',randi(10,4,3));
t.BackgroundColor = [1 0 0; 1 1 0; 0 1 0; 0 1 1];
If the table has more rows than there are rows in BackgroundColor, then the colors are repeated as necessary:
figure
t = uitable('Data',randi(10,4,3));
t.BackgroundColor = [1 0 0; 1 1 0; 0 1 0; 0 1 1];
t.Data(end+10,:) = 0;
Alternatively, you may be able to speed up your code that uses addStyle if you make sure to removeStyle any uistyle when it is no longer needed.
Sofia
Sofia am 6 Nov. 2025

0 Stimmen

What if I want cell in the same row to be of different color?
How can I do this?

Kategorien

Mehr zu Develop Apps Using App Designer finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020b

Gefragt:

am 25 Mär. 2024

Beantwortet:

am 6 Nov. 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by