[Editable uitable] Calculate result based on user input

조회 수: 2 (최근 30일)
Filipe
Filipe 2021년 1월 6일
댓글: Filipe 2021년 1월 6일
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
Walter Roberson
Walter Roberson 2021년 1월 6일
편집: Walter Roberson 2021년 1월 6일
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
Filipe 2021년 1월 6일
Thanks for your answer Walter. I was already able to solve the first part fo my problem. However, I'm quite new to GUI's and the uitable function. Could you tell me how to implement a CellEditCallbackFcn parameter in the uitable()? Maybe with a simple example? Thanks once again,
Filipe

댓글을 달려면 로그인하십시오.

답변 (1개)

Maximilian Schönau
Maximilian Schönau 2021년 1월 6일
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.

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by