Hi I am having a hard time using the getfield. It says there is an error.

조회 수: 3 (최근 30일)
Megan Mirkhanian
Megan Mirkhanian 2019년 12월 18일
댓글: Walter Roberson 2019년 12월 19일
The error says to use dynamic field names with structures instead of GETFIELD.
%%
%%% load the latitude and longitude files (FYI, for some reason the data is
%%% flipped so that Lat is on the horizontal axis and Lon is on the
%%% vertical.
latStruct = load('L:\Flow ecology and climate change_ES\FromKelly_HECHMS_models\PostProcess_PrecipData_AlexHall\Matlabcode\LatLons\surface_lat2.mat');
latField = fieldnames(latStruct);
%lat = getfield(latStruct,string(latField(1,1)));
lat = getfield(latStruct,string(latField(1,1))); %#ok<*GFLD>
lonStruct = load('L:\Flow ecology and climate change_ES\FromKelly_HECHMS_models\PostProcess_PrecipData_AlexHall\Matlabcode\LatLons\surface_lon2.mat');
lonField = fieldnames(lonStruct);
lon = getfield(lonStruct,string(lonField(1,1)));

답변 (1개)

Ridwan Alam
Ridwan Alam 2019년 12월 19일
lat = getfield(latStruct,latField{1});
  댓글 수: 1
Walter Roberson
Walter Roberson 2019년 12월 19일
You are using a fairly old version of MATLAB. Anywhere you see string() used in code you will need to rewrite the code. string in your very old version is not compatible with string in modern versions.
Also, after string was introduced in R2016b, it took a couple of releases before it could be used in getfield()

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Climate Science and Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by