Function not returning the desired structure

4 Ansichten (letzte 30 Tage)
David Meixell
David Meixell am 30 Okt. 2020
Kommentiert: David Meixell am 30 Okt. 2020
When testing my function to build a structure based on a .dat file, the output shows the desired struct 'kepler' but seems to overwrite with the same size struct 'ans.' Why is it doing this, and how can I fix it?
function kepler = loadkepler(filename)
data = load(filename);
kepler.svid = data(1:end,1);
kepler.meananomaly = data(1:end,2);
kepler.omega = data(1:end,3);
kepler.radius = data(1:end,4);
kepler.inclination = data(1:end,5);
kepler.reftime = data(1:end,6);
end
When I test it with just the 'svid' field, this is the output:
>> loadkepler
kepler =
struct with fields:
svid: [24×1 double]
ans =
struct with fields:
svid: [24×1 double]
Attempts to build a bar graph only work if I use 'ans.svid' instead of 'kepler.svid'

Akzeptierte Antwort

Stephan
Stephan am 30 Okt. 2020
Bearbeitet: Stephan am 30 Okt. 2020
You dont assign the output of the function to a variable - use:
kepler = loadkepler...
  1 Kommentar
David Meixell
David Meixell am 30 Okt. 2020
Well, that worked!
I thought I wouldn't have to do that, as the struct 'kepler' is created when I assign each field. Does MATLAB not recognize the struct as a valid output of the function? I'm confused as to what's going on behind the scenes.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by