Change the numer rows of a uitable in MATLAB gui automatically using GUIDE?
1 view (last 30 days)
Show older comments
How to create an option (text box) to enter a number to automatically change the number rows of a uitable in MATLAB gui using GUIDE?
0 Comments
Answers (2)
Walter Roberson
on 19 Nov 2017
Edited: Walter Roberson
on 20 Nov 2017
uit = uitable('Data', [0 0 0]);
FirstN = @(Matrix, N) Matrix(1:N, :);
ChopN = @(Matrix, N) FirstN([Matrix; zeros(N, size(Matrix,2))], N);
uicontrol('style', 'edit', 'Callback', @(src, event) set(uit, 'data', ChopN(get(uit, 'data'), str2double(get(src, 'string'))));
10 Comments
Walter Roberson
on 10 Jul 2018
You programmed a cell edit callback, which is a callback that activates when the user edits data in the uitable. If you want the change to happen when the user edits the edit box, then
function edit3_Callback(hObject, eventdata, handles)
FirstN = @(Matrix, N) Matrix(1:N, :);
ChopN = @(Matrix, N) FirstN([Matrix; zeros(N, size(Matrix,2))], N);
set(handles.uitable1, 'Data', ChopN(get(handles.uitable1, 'Data'), str2double(get( hObject, 'string'))) )
Vinayak Appasaheb Bhatte
on 10 Jul 2018
Thanks a lot @Walter for your kind explanation, I did work finally.
Image Analyst
on 20 Nov 2017
You can just assign the data to it and it will automatically adjust its size to handle/display all the rows and columns in your data matrix:
handles.uitable1.Data = yourData;
Or, you can just click on the little icon in the Columns entry in the Property Inspector, which you can bring up in GUIDE by double clicking on the table control.
3 Comments
Image Analyst
on 21 Nov 2017
Basically get the string from the edit box
contentsString = handles.edit1.String;
Then parse contentsString to get what you want and expect - a row or whole matrix of whatever - and load that into yourData and then use the code I originally gave you:
handles.uitable1.Data = yourData;
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!