cell2struc "Number of field names must match number of fields in new structure" error
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ashley Lewis
am 8 Aug. 2018
Beantwortet: Kaitlyn Keil
am 8 Aug. 2018
Hello! I am trying to assign 3 fields to each image of this cell array when I convert it to a structure array. I think the error is occurring since the cell array is 16x1 and therefore expects 1 field along the 2nd dimension. However I am looking to assign three fields for each image (therefore each cell) in the array. How can I change my code to do this? Thanks for any help!
N = 16;
C = cell(1,N);
for k = 1:N
F = sprintf('image%d.bmp',k);
C{k} = imread(F);
C_transposed = C';
end
fields= {'image',[], 'category','', 'Label', ''};
GImageDataManMade = cell2struct(C_transposed, fields,2)
error: Error using cell2struct Number of field names must match number of fields in new structure.
0 Kommentare
Akzeptierte Antwort
Kaitlyn Keil
am 8 Aug. 2018
I believe what you want to do is the following:
N = 16;
C = cell(3,N);
for k = 1:N
F = sprintf('image%d.bmp',k);
C{1,k} = imread(F);
C_transposed = C';
end
fields= {'image','category', 'Label'};
GImageDataManMade = cell2struct(C_transposed, fields,2)
and then set the category and Label separately (or during the loop). Before, it was trying to shape a 16x1 cell array into a structure that wanted 16x6 (the '[]' and '' in fields counted as new fields as well), as you suspected.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!