HOW TO SOLVE THIS?

1 回表示 (過去 30 日間)
daniel
daniel 2023 年 1 月 1 日
コメント済み: Voss 2023 年 1 月 3 日
  8 件のコメント
daniel
daniel 2023 年 1 月 1 日
Walter Roberson
Walter Roberson 2023 年 1 月 1 日
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.

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2023 年 1 月 1 日
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 件のコメント
daniel
daniel 2023 年 1 月 1 日
its working tnks
Voss
Voss 2023 年 1 月 3 日
@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))

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFunction Creation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by