[Editable uitable] Calculate result based on user input
Ältere Kommentare anzeigen
Hi there,
I have created a uitable in GUI. Consists on a nx3 table. The first two columns (A,B) are user input. The third should be the result of a computation (C=A*B). How can I manage to achieve this? This is my current code, in which I initialy input random values.
Thanks a lot,
Filipe
function MyTable
f = figure('Position',[300 300 3000 400]);
% Column names and column format
columnname = {'A','B','C'};
columnformat = {'bank','bank','bank'};
% Define the initial displayed data
d = {randi([0 10],1,1) randi([0 10],1,1) randi([0 10],1,1);}; % I guess this is my first mistake because the third column should be already the result of a computation but I don't know how to do it
% Create the uitable
hTable = uitable(f,'Position',[0 0 3000 400],'Data', d,...
'ColumnName', columnname,...
'ColumnFormat', columnformat,...
'ColumnEditable', [true true false],... % I set the last to false since it is not supposed to be editable.
'RowName',[]);
get(hTable,'Data')
end
2 Kommentare
Walter Roberson
am 6 Jan. 2021
Bearbeitet: Walter Roberson
am 6 Jan. 2021
d = {randi([0 10],1,1) randi([0 10],1,1)};
d{3} = d{1} .* d{2};
Beyond that, you need a CellEditCallbackFcn parameter in the uitable() call to update d{3} based upont he current d{1} and d{2}
Filipe
am 6 Jan. 2021
Antworten (1)
Maximilian Schönau
am 6 Jan. 2021
0 Stimmen
Right click on your table, --> Callbacks --> Add CellEditCallback
This will create a subsection in your app code. Whenever a cell is edited by the user, this function will run.
So you can use this Callback to calculate the result of the table inputs and update the table accordingly.
1 Kommentar
Filipe
am 6 Jan. 2021
Kategorien
Mehr zu Programming finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!