Why will my function not run?
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
James Crowe
am 20 Nov. 2017
Kommentiert: Walter Roberson
am 18 Dez. 2020
Hi all, why will my function not run? If p = 1 I want to find the determinant of A, if p = 2 I want to find the trace of A and if p doesn't equal 1 or 2 I want to display the error message. Is my code correct, or is there a better way to do it? And why does the function not run. Thank you!
function [det(A),tr(A)] = myFunction(A,p)
if p == 1
det(A) = det(A);
elseif p == 2
tr(A) = trace(A);
else
disp ('Invalid input')
end
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 20 Nov. 2017
function [detA,trA] = myFunction(A,p)
if p == 1
detA = det(A);
elseif p == 2
trA = trace(A);
else
disp ('Invalid input')
end
However, you are going to have the problem that in each case you are not assigning to one of the output variables. You should check: does the assignment expect you to return the two possibilities to different variables or to just one output?
function result = test(something)
if something == 1
result = 15;
elseif something == 2
result = -10;
else
result = 'What?'
end
4 Kommentare
Vlad Atanasiu
am 18 Dez. 2020
So: If any outputs of a function are undefined, then Matlab throws an error.
Write a function were the first outputs are not defined:
function [a,b,c] = undefined_output(x)
c = x;
Call the function:
try
[a,b,c] = undefined_output('no error');
disp(c)
catch
disp('error')
end
Answer:
error
Where is this behavior specified in the Matlab documentation?
Walter Roberson
am 18 Dez. 2020
Not exactly correct. There is only an error if an unassigned output position is assigned to a variable or used in an expression.
try
[a,b] = undefined_output('no error c unused');
disp(b)
catch
disp('error')
end
try
[a,b,c] = undefined_output('no error c');
disp(b)
disp(c)
catch
disp('error')
end
function [a,b,c] = undefined_output(x)
a = x;
b = 'b okay';
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Algebra 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!