pass input arguments of built in function as cell array or structure?

For example, I want to call the plot command but only provide one input to the function where X and Y are stored in that input. Something like:
S.X = 1:10;
S.Y = cos(X);
plot(S)
or, can I save X and Y in cell array like:
S{1,1} = 'X';
S{2,1} = 1:10;
S{1,2} = 'Y';
S{2,2} = cos(X);
plot(S{:})
Ultimately, I'd like to call feval and provide all the inputs required for the function to be saved in one variable
feval('plot',S)
thank you

1 件のコメント

plot function does not allow direct use of struct to graph the data.
S.X = 1:10;
S.Y = cos(S.X);
plot(S.X,S.Y)

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

 採用された回答

Walter Roberson
Walter Roberson 2023 年 3 月 21 日
feval('plot', S{:})
feval does not support passing in any kind of structured input .
Most functions do not support providing some kind of structured input that describes the parameters and options to the function. Some functions do support that -- for example some of the optimization functions support that
Although if you use arguments blocks then the processing of name/value pairs looks like structure access, that does not mean that you can pass a structure and the structure will be treated as describing name/value pairs. If your function wants to support a struct of parameters, then it must do so explicitly.

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

製品

リリース

R2020b

質問済み:

2023 年 3 月 20 日

コメント済み:

2023 年 3 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by