Modify cell value of a row based on other cell value in same row uitable

조회 수: 2(최근 30일)
function uitable4_CellEditCallback(hObject, eventdata, handles)
a = cell2table(a);
a.a6 = (10 / a.a5)*1^4; %where a.a6 is the column to be auto modify after editing column a.a5
a = table2cell(a);
set(handles.uitable4, 'Data',a);
Practically, I want every time I modify the value in a cell from a.a5 column, the a.a6 to be modified automaticaly, for the first row it's working but when I add another row i get the error:
To assign to or create a variable in a table, the number of rows must match the height of the table.
Practically, I unerstand the error but how to make the code working for every row? Thanks!
  댓글 수: 11
Cristian Martin
Cristian Martin 2022년 6월 8일
if colnum == 5;
hObject.Data{rownum,6}=hObject.Data{rownum,colnum}+1000; % Add 1000 to the new value
that resolve the problem
Thanks @Simon Chan for your patience, and answers !

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

채택된 답변

Simon Chan
Simon Chan 2022년 6월 8일
Just move the last comment as an answer.
function uitable4_CellEditCallback(hObject, eventdata, handles)
% Get the row number of your edited cell
rownum = eventdata.Indices(1);
colnum = eventdata.Indices(2);
% Update column 6 when column 5 has a new value
if isequal(colnum,5)
hObject.Data(rownum,6)=hObject.Data(rownum,colnum)+1000; % Add 1000 to the new value
Please accept the answer if it is useful for you.

추가 답변(0개)




Community Treasure Hunt

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

Start Hunting!

Translated by