Why will my function not run?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
James Crowe
el 20 de Nov. de 2017
Comentada: Walter Roberson
el 18 de Dic. de 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 comentarios
Respuesta aceptada
Walter Roberson
el 20 de Nov. de 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 comentarios
Vlad Atanasiu
el 18 de Dic. de 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
el 18 de Dic. de 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
Más respuestas (0)
Ver también
Categorías
Más información sobre Linear Algebra en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!