Function not returning the desired structure

3 visualizzazioni (ultimi 30 giorni)
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'

Risposta accettata

Stephan
Stephan il 30 Ott 2020
Modificato: Stephan il 30 Ott 2020
You dont assign the output of the function to a variable - use:
kepler = loadkepler...
  1 Commento
David Meixell
David Meixell il 30 Ott 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Event Functions in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by