Why will my function not run?
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
James Crowe
il 20 Nov 2017
Commentato: Walter Roberson
il 18 Dic 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 Commenti
Risposta accettata
Walter Roberson
il 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 Commenti
Vlad Atanasiu
il 18 Dic 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
il 18 Dic 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Linear Algebra 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!