Doubles and cell array in uitable

12 views (last 30 days)
cdr
cdr on 21 Apr 2015
Edited: cdr on 22 Apr 2015
trying to get variable double arrays and one (1xn) cell array in an uitable.
Error: Error using uitable Values within a cell array must be numeric, logical, or char
if i try to convert it i get the following error:
Error: data within a cell array must have size [1 1]
that´s my data and uitable:
dat = [double1' double2' 1xNcell double3'];
f = figure('Position',[100 100 1000 500]);
columnformat = {'numeric','numeric',{'c' 'd'},'numeric'};
cnames = {'1','2', 'string','3'};
t = uitable('Parent',f, 'ColumnName',cnames, 'Position',[25 50 950 450],'Data', dat)
Can someone help me out?

Accepted Answer

Image Analyst
Image Analyst on 21 Apr 2015
columnformat is a cell array. Three of the 4 cells in columnformat are simple strings. However the third cell contains another cell . Why? It should not. Have you read the FAQ: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
Also, in this line
dat = [double1' double2' 1xNcell double3'];
that won't work if 1xNcell is really a cell array instead of a double array like the other 3. I recommend you split your data up into all doubles, or if you need mixed class data, use one cell array for dat. Either way, you should not have a cell within a cell for columnformat.
  1 Comment
cdr
cdr on 22 Apr 2015
Edited: cdr on 22 Apr 2015
Thanks but i still get an error:
Error using set Data within a cell array must have size [1 1]
I used one cell array for dat, including the doubles using num2cell for each (1xn)double array and the string is now included as char. This leads to the error: using uitable Values within a cell array must be numeric, logical, or char
that means i can not use cells for my uitable. It works when i just type in the char in dat={char(1)} but adding more values created an error.
furthermore the chars should be acessed individually (char(i)) and not be written as one string containing all the chars but just whar i entered in the corresponding edit box.
My code now looks like that:
dataCell={Tonstring}; %{}containing a 1x2 cell
A1={double1}; %{}containing a 1x2 double
dat=[A1 dataCell];
set(t, 'Data', dat);

Sign in to comment.

More Answers (0)

Categories

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

Community Treasure Hunt

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

Start Hunting!