Why will one of my lines of this function not work?
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    James Crowe
 am 21 Nov. 2017
  
    
    
    
    
    Kommentiert: James Crowe
 am 21 Nov. 2017
            How comes the line elseif p == 2 doesn't work when using the function in a script, but the rest do? Is there a better way to do this? Also how would I make it so that there is no output to the command window?
 function [detA,trA] = myFunction(A,p)
if p == 1
    detA = det(A);
elseif p == 2
    trA = trace(A);
else 
    disp ('Invalid input')
end
0 Kommentare
Akzeptierte Antwort
  Birdman
      
      
 am 21 Nov. 2017
        You define 2 outputs but in each if case, you only use one output and the other one is left unassigned. When you call function from workspace by not assigning its outputs, like
myFunction(A,1)
or
myFunction(A,2)
it automatically returns the first output. Since in the second if case you did not assign the first output to something, it does not return it. Instead try the following.
function y = myFunction(A,p)
if p == 1
    y= det(A);
elseif p == 2
    y= trace(A);
else 
    disp ('Invalid input')
end
and you can call it by
myFunction(A,1)
or
myFunction(A,2)
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Special Characters finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

