prevent function from displaying output

7 visualizzazioni (ultimi 30 giorni)
pemfir
pemfir il 28 Set 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 Commento
Razvan
Razvan il 28 Set 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...

Accedi per commentare.

Risposta accettata

Razvan
Razvan il 28 Set 2012
f = delet;
  2 Commenti
pemfir
pemfir il 28 Set 2012
Modificato: pemfir il 28 Set 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 il 28 Set 2012
you have to put semicolon in the body of the function too:
f = @(x) f1(x(1))+f2(x(2));

Accedi per commentare.

Più risposte (3)

Wayne King
Wayne King il 28 Set 2012
Put a semicolon after delet when you call the function
f = delet;
  1 Commento
pemfir
pemfir il 28 Set 2012
Modificato: pemfir il 28 Set 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))

Accedi per commentare.


Daniel Shub
Daniel Shub il 28 Set 2012
Are you trying to evaluate the function? Do you want f()?

Muthu Annamalai
Muthu Annamalai il 28 Set 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.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by