Effacer les filtres
Effacer les filtres

prevent function from displaying output

3 vues (au cours des 30 derniers jours)
pemfir
pemfir le 28 Sep 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 commentaire
Razvan
Razvan le 28 Sep 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...

Connectez-vous pour commenter.

Réponse acceptée

Razvan
Razvan le 28 Sep 2012
f = delet;
  2 commentaires
pemfir
pemfir le 28 Sep 2012
Modifié(e) : pemfir le 28 Sep 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 le 28 Sep 2012
you have to put semicolon in the body of the function too:
f = @(x) f1(x(1))+f2(x(2));

Connectez-vous pour commenter.

Plus de réponses (3)

Wayne King
Wayne King le 28 Sep 2012
Put a semicolon after delet when you call the function
f = delet;
  1 commentaire
pemfir
pemfir le 28 Sep 2012
Modifié(e) : pemfir le 28 Sep 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))

Connectez-vous pour commenter.


Daniel Shub
Daniel Shub le 28 Sep 2012
Are you trying to evaluate the function? Do you want f()?
  1 commentaire
pemfir
pemfir le 28 Sep 2012
i will use it in fsolve

Connectez-vous pour commenter.


Muthu Annamalai
Muthu Annamalai le 28 Sep 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.

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by