Function not returning the desired structure

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'

 採用された回答

Stephan
Stephan 2020 年 10 月 30 日
編集済み: Stephan 2020 年 10 月 30 日

0 投票

You dont assign the output of the function to a variable - use:
kepler = loadkepler...

1 件のコメント

David Meixell
David Meixell 2020 年 10 月 30 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeEvent Functions についてさらに検索

製品

リリース

R2019b

質問済み:

2020 年 10 月 30 日

コメント済み:

2020 年 10 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by