HOW TO SOLVE THIS?

2 views (last 30 days)
daniel
daniel on 1 Jan 2023
Commented: Voss on 3 Jan 2023
  8 Comments
daniel
daniel on 1 Jan 2023
Walter Roberson
Walter Roberson on 1 Jan 2023
In the case of that error message, the problem is that you had accidentally created a variable named velocity that you are then trying to index. If there is a variable in scope and a function of the same name, MATLAB gives priority to the variable in scope.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 1 Jan 2023
Try this:
v = velocity([0, 5.6, 7], [0, 1.1, 2.4], [0, 4, 20], [0, 1, 2])
v = 1×2
6.9692 16.1137
function v = velocity(x,y,z,t)
v = [];
if ~isequal(size(x), size(y)) || ~isequal(size(x), size(z)) || ~isequal(size(x), size(t))
uiwait(errordlg('Sizes do not match'));
return;
end
v = sqrt(diff(x).^2+diff(y).^2+diff(z).^2)./diff(t);
end
  5 Comments
daniel
daniel on 1 Jan 2023
its working tnks
Voss
Voss on 3 Jan 2023
@daniel: isequal accepts more than two input arguments and returns true if and only if all the inputs are equivalent.
That is, you can replace this:
if ~isequal(size(x), size(y)) || ~isequal(size(x), size(z)) || ~isequal(size(x), size(t))
with this:
if ~isequal(size(x), size(y), size(z), size(t))

Sign in to comment.

More Answers (0)

Categories

Find more on Function Creation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!