case6-7, add case 1 config result data
This commit is contained in:
@@ -680,6 +680,8 @@ classdef EDFMAppController < handle
|
||||
obj.App.(propName).Data = {};
|
||||
elseif isnumeric(value)
|
||||
obj.App.(propName).Data = num2cell(value);
|
||||
elseif iscell(value)
|
||||
obj.App.(propName).Data = obj.prepareCellTableForUI(value);
|
||||
else
|
||||
obj.App.(propName).Data = value;
|
||||
end
|
||||
@@ -694,7 +696,7 @@ classdef EDFMAppController < handle
|
||||
if isempty(data)
|
||||
value = fallback;
|
||||
else
|
||||
value = data;
|
||||
value = obj.parseUITableData(data);
|
||||
end
|
||||
end
|
||||
|
||||
@@ -776,6 +778,88 @@ classdef EDFMAppController < handle
|
||||
values{1} = firstValue;
|
||||
end
|
||||
|
||||
function tableData = prepareCellTableForUI(obj, rawData)
|
||||
tableData = rawData;
|
||||
for i = 1:size(rawData, 1)
|
||||
for j = 1:size(rawData, 2)
|
||||
tableData{i, j} = obj.serializeTableCell(rawData{i, j});
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function value = parseUITableData(obj, data)
|
||||
if isnumeric(data)
|
||||
value = data;
|
||||
return;
|
||||
end
|
||||
if ~iscell(data)
|
||||
value = data;
|
||||
return;
|
||||
end
|
||||
value = data;
|
||||
for i = 1:size(data, 1)
|
||||
for j = 1:size(data, 2)
|
||||
value{i, j} = obj.parseTableCell(data{i, j});
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function value = serializeTableCell(obj, rawValue)
|
||||
if isnumeric(rawValue) || islogical(rawValue)
|
||||
if isscalar(rawValue)
|
||||
value = rawValue;
|
||||
else
|
||||
value = obj.valueToExpression(rawValue);
|
||||
end
|
||||
return;
|
||||
end
|
||||
if iscell(rawValue)
|
||||
value = obj.valueToExpression(rawValue);
|
||||
return;
|
||||
end
|
||||
if isstring(rawValue) && isscalar(rawValue)
|
||||
value = char(rawValue);
|
||||
return;
|
||||
end
|
||||
value = rawValue;
|
||||
end
|
||||
|
||||
function value = parseTableCell(~, rawValue)
|
||||
if isnumeric(rawValue) || islogical(rawValue)
|
||||
value = rawValue;
|
||||
return;
|
||||
end
|
||||
if isstring(rawValue) && isscalar(rawValue)
|
||||
rawValue = char(rawValue);
|
||||
end
|
||||
if ~ischar(rawValue)
|
||||
value = rawValue;
|
||||
return;
|
||||
end
|
||||
|
||||
textValue = strtrim(rawValue);
|
||||
if isempty(textValue)
|
||||
value = [];
|
||||
return;
|
||||
end
|
||||
|
||||
numericValue = str2double(textValue);
|
||||
if ~isnan(numericValue) && isempty(regexp(textValue, '[A-Za-z_''\[\]\{\};,]', 'once'))
|
||||
value = numericValue;
|
||||
return;
|
||||
end
|
||||
|
||||
if startsWith(textValue, '[') || startsWith(textValue, '{')
|
||||
try
|
||||
value = eval(textValue); %#ok<EVLDIR>
|
||||
return;
|
||||
catch
|
||||
end
|
||||
end
|
||||
|
||||
value = rawValue;
|
||||
end
|
||||
|
||||
function value = convertTableCellToDouble(~, cellValue)
|
||||
if isnumeric(cellValue) && isscalar(cellValue)
|
||||
value = double(cellValue);
|
||||
|
||||
Reference in New Issue
Block a user