cell2struc "Number of field names must match number of fields in new structure" error

14 ビュー (過去 30 日間)
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.

採用された回答

Kaitlyn Keil
Kaitlyn Keil 2018 年 8 月 8 日
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 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by