Why does my matrix looks empty when it's not?

4 visualizzazioni (ultimi 30 giorni)
Hello, I'm trying to code an UItable where the user is free to add and delete as many rows as they want to. I need the data entered by the user to do some calculus but when I use the get function and then transfer that to a matrix, it runs ok but shows an empty matrix M.
Ps. My add and delete row work just fine, the problem is somewhere else
tabla={'','',''};
app.UITable.Data=tabla;
%I called "tabla" as a global because the code above is in a
%startupFCN button
global tabla
datos = get(tabla, 'Data');
M= cell2mat(datos);

Risposta accettata

Walter Roberson
Walter Roberson il 11 Mar 2023
When you global a variable after assigning a local value to the variable in the same workspace, then the local value is removed and the current global value replaces it.
tabla={'','',''};
app.UITable.Data=tabla;
global tabla
is like clear tabla right before the global tabla -- unless, that is, tabla was already global in the workspace.
Furthermore, you get(tabla, 'Data') but is tabla a UITable ? Or is it a cell array of character vectors like you assigned in your code?
Your code appears to be confusing the contents of the UITable and the handle of the UITable.
  5 Commenti
Walter Roberson
Walter Roberson il 12 Mar 2023
function calculateButtonPushed(app, event)
datos = app.UITable.Data;
M = cell2mat(datos);
end

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Package and Share Apps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by