whats wrong with my code?
Mostrar comentarios más antiguos
function v=velocity(x,y,z,t)
if and (length(x)==length(y), length(y)==length(z))
if length(z)==length(t)
v=sqrt(diff(x).^2+diff(y).^2+diff(z).^2)./diff(t);
disp(velocity,sqrt)
else
disp('Vectors must have the same length for calculation');
end
end
1 comentario
Voss
el 1 de En. de 2023
What is your intent with this line?
disp(velocity,sqrt)
That calls the function velocity() again, with no arguments (and the function sqrt() with no arguments), which causes an error.
Maybe you mean this instead?
disp(v)
Respuestas (1)
Image Analyst
el 1 de En. de 2023
Editada: Image Analyst
el 1 de En. de 2023
Well #1 is the lack of comments. All programmers should comment their code, and you should too.
Secondly, this
if and (length(x)==length(y), length(y)==length(z))
should be
if (length(x)==length(y)) && (length(y)==length(z))
And the very first line inside the function should be
v = [];
so that you at least return something if the length test fails.
3 comentarios
daniel
el 1 de En. de 2023
Torsten
el 1 de En. de 2023
disp(velocity,sqrt)
This statement does not make sense since "velocity" is the name of the function, but not of a variable that could be displayed.
Further, if such a variable existed, it had to be
disp(sqrt(velocity))
instead of
disp(velocity,sqrt)
Image Analyst
el 1 de En. de 2023
disp(v)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!