Struct contents reference from a non-struct array object
5 次查看(过去 30 天)
显示 更早的评论
Hi,
I have ds containing cell arrrays (1 by 3571) and each cell index points to a table of 4 by 7 elements. When any cell is empty while concatenating, the above error is shown. Basically, I am trying to access the contents of the cells contained within the cell array "Table" and plot different fields on a 1 by 3571 grid where each index refers to a point on a lat/lon grid.
Here is the code: Any ideas how to fix the error and plot the content of the data set.
for n = 1:3571;
Unc{n}=Table{1,n}.UncA
end;
whos Table
Name Size Bytes Class Attributes
Table 1x3571 9326972 cell
Here is the sample content of one of the cells contained in teh cell array.
Var A UncA B UncB C UncC
'1' -0.0186917327837646 -0.0266242514128150 0.00420612704074986 -0.00200002085968102 0.107411895593770 0.0187751225715014
'2' -0.0141854422900873 -0.0316765707830826 0.00382987363234866 -0.00237934723997174 0.0345770815773565 0.0224174109442981
'3' -0.0180850135958575 -0.0258819602652245 0.00416311313467285 -0.00194411629488122 NaN NaN
'4' -0.0167188467826965 -0.0315984164923636 0.00407529091905538 -0.00236624020568344 NaN NaN
0 个评论
采纳的回答
Greg
2018-11-28
编辑:Greg
2018-11-29
If I'm understanding correctly, some indices of your cell array contain tables, and others are empty? What do you want to happen with the empty cells?
blnEmptyCells = cellfun(@isempty,Table);
%%% If throwing them out isn't ok, see additional posts below
Table(blnEmptyCells) = [];
Unc = cell(length(Table),1);
for ij = 1:length(Table)
Unc{ij} = Table{1,ij}.UncA;
end
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!