Adding a column to a UITable and then using it.

3 views (last 30 days)
After a few hours of trying I finally was able to add a column to a UITable
A = zeros([1 size(app.StimInputTable.Data,1)]);
app.StimInputTable.Data.Var4 = A'; % Have to make A a column vector!
for ii = 1:size(app.StimInputTable.Data,1)
app.StimInputTable.Var4(ii) = ...
app.StimInputTable.Data.Var3(ii)/app.StimInputTable.Data.Var2(ii);
But now...
assigning a value to Our new column Var4 gives me
Unrecognized method, property, or field 'Var4' for class 'matlab.ui.control.Table'.
It know what app.StimInputTable.Data.Var3(ii)/app.StimInputTable.Data.Var2(ii);
is so now put it in Var4! How hard can that be?
K>> app.StimInputTable.Data
ans =
4×4 table
Var1 Var2 Var3 Var4
____ ____ ____ ____
4 5 0 0
5 4 1 0
2 3 2 0
3 2 5 0
I can do it 1 row at a time from theCommand window:
K>> app.StimInputTable.Data
ii = 1 (etc)
K>> app.StimInputTable.Data.Var4(ii) = app.StimInputTable.Data.Var3(ii)/app.StimInputTable.Data.Var2(ii)
Although the "answer" I get is my whole
app =
MouseOdor4 with properties:
MouseOdor: [1×1 Figure]
all the properties of the whole app I won't bore you with
K>> app.StimInputTable.Data
ans =
4×4 table
Var1 Var2 Var3 Var4
____ ____ ____ _______
4 5 0 1
5 4 1 2
2 3 2 0.66667
3 2 5 2.5
Look it worked!
Next step if you don't mind anwering is to sort the table by the Var4 column
  1 Comment
Alessandro Livi
Alessandro Livi on 21 Jul 2024
BTW I tried addvars() for a while as help said to do but never got that to work following all the examples the best I could

Sign in to comment.

Accepted Answer

Voss
Voss on 21 Jul 2024
Edited: Voss on 21 Jul 2024
app.StimInputTable.Data.Var4 = app.StimInputTable.Data.Var3./app.StimInputTable.Data.Var2;
%                 ^^^^^ you were missing the .Data
  4 Comments
Alessandro Livi
Alessandro Livi on 22 Jul 2024
Added some string stuff which completes but now when I exit the callback it halts here so maybe that is a clue?
methods (Access = protected, Sealed = true)
function newCallback = createCallbackFcn(app, callback, requiresEventData)
if nargin == 2
requiresEventData = false;
end
ams = appdesigner.internal.service.AppManagementService.instance();
newCallback = @(source, event)executeCallback(ams, ...
app, callback, requiresEventData, event);
end
Is there some magic I have to do at the end of a callback function?
Voss
Voss on 22 Jul 2024
No magic required. What is the problem you are describing?

Sign in to comment.

More Answers (0)

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!