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

15 visualizaciones (últimos 30 días)
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 comentario
VBBV
VBBV el 21 de Mzo. de 2023
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)

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 21 de Mzo. de 2023
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.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by