get the table from uitable into a matrix A

tableData = get(handles.uitable1, 'Data')
tableData =
'99' [41]
'77' [13]
can i convert it to a normal matrix so i can do a function on it

5 个评论

table2array has nothing to do with uitable. It certainly won't know what to do with a cell array.
If I understood the code correctly:
tableData % returns a cell
Having recreated this cell, array2table seem to covert the cell to the table:
a = {'99' '77'} % cell
b = [41 13] % double
b = num2cell(b) % double to cell
tableData = [a' b'] % cell concatenation
t = array2table(tableData) % cell to table
The output:
t =
2×2 table
tableData1 tableData2
__________ __________
'99' [41]
'77' [13]
However, like you said, it doesn't make any sense to have the number stored as a char in the first place.
Do you want the '99' to be converted to numeric so that you end up with a purely numeric array?
yes,the user inputs a matrix and i want to save in a matrix A so i can do my functions on it

请先登录,再进行评论。

 采纳的回答

Your uitable returns a cell array because you've defined the first column as char. If your uitable is supposed to contain numbers only then the easiest way to fix your problem, is to change the ColumnFormat of that first column to 'numeric'. If you show us the line(s) where you create that uitable we can give you the exact syntax.
Alternatively, it can be fixed after the fact, but it'll be slower and kind of pointless:
tableData = get(handles.uitable1, 'Data');
tableData = [str2double(tableData(:, 1)), cell2mat(tableData(:, 2))];

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Tables 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by