Trying to input data into uitable, but getting error: Data must be a numeric, logical, or cell array

조회 수: 59 (최근 30일)
So, I've been reading through documentation for about an hour now, and I can't seem to figure this out.
I've created a UItable that needs to be filled. I've also created a table of data that I've imported from an excel file as a cell.
When I try to fill in the UItable with the data however, it gives me the error:
While setting the 'Data' property of 'Table':
Values within a cell array must be numeric, logical, or char
I cannot, for the life of me figure this out and I've been at this all day.
Here is the only other information I can give that might be useful: assuming the cell array is named "A":
class(A) = cell
A = {24x1 cell} {24x1 cell} {24x1 cell} {24x1 cell} {24x1 cell}
I've tried to convert these to characters or other such things, but nothing is seeming to work.
Any advice would really be appreciated!
  댓글 수: 1
marlon hernandez
marlon hernandez 2019년 3월 2일
talves esto pueda ayudarte, yo estoy trabajando con MYSQL y envio una tabla a matlab para visualizarla en GUIDE en un panel, tenia el mismo error y lo unico que hice fue esto convertirla a cell de esta forma "C= table2cell(datadb)" siendo datadb la table que deseaba poner en la tabla del GUIDE
:
prefs = setdbprefs('DataReturnFormat');
setdbprefs('DataReturnFormat','table'
%% Make connection to database
conn = database('datosbase','root','');
%% Execute query and fetch results
curs = exec(conn,['SELECT * ' ...
'FROM atletas.paciente']);
curs = fetch(curs);
datadb = curs.Data
C = table2cell(datadb)
set(handles.uitable1,'data',C);
close(curs)
suerte

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

답변 (1개)

Niels
Niels 2017년 1월 27일
편집: Niels 2017년 1월 27일
i copied this from the uitable documentation:
d = {'Male',52,true;'Male',40,true;'Female',25,false};
t.Data = d;
t.Position = [20 20 258 78];
as you can see the data has to be a cell array, but the contents of this cell array are not
in your example (i guess A shall be the data you want to put into the table) the contents are cell arrays as well
example:
A={[1 2] a {100} [true false]}
A =
1×4 cell array
[1×2 double] 'hello world' {1×1 cell} [1×2 logical]
everything above, except the cell arrays, would be fine.
my guess is you cant save your data in single matrix since the data are no numbers, so you saved them in a cell array and cant use
t.data={A}; % and you shouldnt cause your data is alrdy a cell array
as shown in the example the data in the table will be saved in 1 cell array (in your case a 25x5)
since you saved your data in several cell arrays you can proceed as follows:
put one cell array of yours after another so that you get 1 25x5 cell array
formated_data=[A{1},A{2},A{3},A{4},A{5}];
t.Data=formated_data;

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by