MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

"Error using cell2struct Number of field names must match number of fields in new structure. Error in matrix_from_rasters (line 9) hdr = cell2struc​t(num2cell​(hdr{2}),h​dr{1});"

Elisa Mammoliti さんによって質問されました 2019 年 5 月 22 日 9:09
最新アクティビティ Jan
さんによって 回答されました 2019 年 5 月 22 日 9:40
Hi everybody! I'm trying to crate a column matrix from an ascii file having several rows and columns.
str = fileread('crosscurv_7x7_MAC.asc');
str = strrep(str,',','.');
% Parse Header:
opt = {'MultipleDelimsAsOne',true};
hdr = textscan(str,'%s%f',6,opt{:});
hdr = cell2struct(num2cell(hdr{2}),hdr{1});
% Parse Matrix:
opt = {'HeaderLines',numel(fieldnames(hdr)), 'CollectOutput',true};
fmt = repmat('%f32',1,hdr.ncols);
Crosscurv = textscan(str,fmt,opt{:});
Crosscurv = Crosscurv{1};
Crosscurv(Crosscurv==hdr.NODATA_value) = NaN;
Something is going wrong. I get this error:
"Error using cell2struct
Number of field names must match number of fields in new structure.
Error in matrix_from_rasters (line 9) hdr = cell2struct(num2cell(hdr{2}),hdr{1});"
Does anybody help me please?
Thanks in advance

  0 件のコメント

サインイン to comment.

1 件の回答

回答者: Jan
2019 年 5 月 22 日 9:40

Use the debugger to examine, whats going on. Either set a breakpoint in the failing line, or stop Matlab automatically if an error occurs:
dbstop if error
Then run the code again and check, what the variables are:
% Failing line:
% hdr = cell2struct(num2cell(hdr{2}),hdr{1});
hdr{1}
hdr{2}
tmp = num2cell(hdr{1})
size(tmp)
size(hdr{1})
Then "Number of field names must match number of fields in new structure" shoudl be clear.

  0 件のコメント

サインイン to comment.



Translated by