whats wrong with my code?

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 commentaire

Voss
Voss le 1 Jan 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)

Connectez-vous pour commenter.

Réponses (1)

Image Analyst
Image Analyst le 1 Jan 2023
Modifié(e) : Image Analyst le 1 Jan 2023

0 votes

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 commentaires

daniel
daniel le 1 Jan 2023
Unrecognized function or variable 'velocity'.
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)
Like @Voss said, you need
disp(v)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Version

R2022b

Question posée :

le 1 Jan 2023

Commenté :

le 1 Jan 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by