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)

댓글을 달려면 로그인하십시오.

 채택된 답변

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 Exchange에서 Creating, 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