Error field assignment to a non structured array

4 Ansichten (letzte 30 Tage)
geog170
geog170 am 25 Okt. 2017
Kommentiert: geog170 am 25 Okt. 2017
When running this script I get the error, "Field Assignment to a non-structured array" on line 32, "w.dir = m {6} ; ". I am new to matlab, but I've used this same code before to open a different file with different variable names. I think the issue may be in my textscan command? Any thoughts from the pros?
function w = read_met_station(met_file)
met_file = '\\file\weather_data.txt' ;
fid = fopen(met_file) ;
if fid == -1
error('Error. \nFile can not be opened. Check path.') ;
return
end
w = textscan(fid,'%5s %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f %*1c %f','HeaderLines',1) ;
station_num = w{1} ;
year = w{2} ;
month = w{3} ;
day = w{4} ;
hour = w{5} ;
w.dir = w{6} ;
w.speed = w{7} ;
w.gustdir = w{8} ;
w.gustspd = w{9} ;
w.windrun = w{10} ;
w.rain = w{11} ;
w.tdry = w{12} ;
w.twet = w{13} ;
w.rh = w{14} ;
w.tmax = w{15} ;
w.tmin = w{16} ;
w.tgmin = w{17} ;
w.et10 = w{18} ;
w.rad = w{19} ;
w.dn = datenum(year,month,day,hour,zeros(size(hour))) ;
  4 Kommentare
KSSV
KSSV am 25 Okt. 2017
YOur w is a class of cell..you are treating it as structure, which is not correct.
geog170
geog170 am 25 Okt. 2017
I ended up being able to fix it by changing all my "w." to "t." and updating the datenum to be (year,month,day). I'm not sure why it is having an issue with the hours.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 25 Okt. 2017
Bearbeitet: KSSV am 25 Okt. 2017
T = readtable(met_file) ;
or
T = fileread(met_file) ;

Weitere Antworten (0)

Kategorien

Mehr zu Standard File Formats 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!

Translated by