Borrar filtros
Borrar filtros

prevent function from displaying output

3 visualizaciones (últimos 30 días)
pemfir
pemfir el 28 de Sept. de 2012
I have the following function (please do not suggest that i change the function itself):
function [sumf] = delet();
for i = 1:2;
syms d u ;
f = (char(vpa(subs((d/u - strcat('k',num2str(i))),{d,u},{1,2}))));
a = symvar(char(vpa(f)));
f = ['@(', sprintf('%k1,', a{1:end-1}), a{end}, ') ',f];
f = eval(f);
x = strcat('f',num2str(i));
eval(sprintf('%s = f',x));
end
sumf = @(k) f1(k(1))+f2(k(2));
once called : f = delet; f = delet;
f =
0.5 - 1.0*k1
f1 =
@(k1)0.5-1.0*k1
f =
0.5 - 1.0*k2
f2 =
@(k2)0.5-1.0*k2
on the display. how do i stop this ?
  1 comentario
Razvan
Razvan el 28 de Sept. de 2012
What exactly do you want to stop? Your question is very unclear... Probably you want to remove the
eval(sprintf('%s = f',x));
line, if you don't want this to display your functions...

Iniciar sesión para comentar.

Respuesta aceptada

Razvan
Razvan el 28 de Sept. de 2012
f = delet;
  2 comentarios
pemfir
pemfir el 28 de Sept. de 2012
Editada: pemfir el 28 de Sept. de 2012
please try the following. my mistake i uploaded a bad example:
function [f] = delet();
f1 = @(x) x^2 + 3;
f2 = @(x) x^2 + 3;
f = @(x) f1(x(1))+f2(x(2));
once called : f = delet;
f =
@(x)f1(x(1))+f2(x(2))
Razvan
Razvan el 28 de Sept. de 2012
you have to put semicolon in the body of the function too:
f = @(x) f1(x(1))+f2(x(2));

Iniciar sesión para comentar.

Más respuestas (3)

Wayne King
Wayne King el 28 de Sept. de 2012
Put a semicolon after delet when you call the function
f = delet;
  1 comentario
pemfir
pemfir el 28 de Sept. de 2012
Editada: pemfir el 28 de Sept. de 2012
please try the following. my mistake i uploaded a bad example:
function [f] = delet();
f1 = @(x) x^2 + 3;
f2 = @(x) x^2 + 3;
f = @(x) f1(x(1))+f2(x(2));
once called : f = delet;
f =
@(x)f1(x(1))+f2(x(2))

Iniciar sesión para comentar.


Daniel Shub
Daniel Shub el 28 de Sept. de 2012
Are you trying to evaluate the function? Do you want f()?

Muthu Annamalai
Muthu Annamalai el 28 de Sept. de 2012
Changes, like the previous comments suggest, using a semi-colon, should stop output form appearing on your terminal.
Also you want to explore 'str2func()' as a way to build function handles.

Categorías

Más información sobre Interactive Control and Callbacks en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by