Find function - scalar result?

4 ビュー (過去 30 日間)
Cyril CRIER
Cyril CRIER 2021 年 4 月 8 日
コメント済み: Jan 2022 年 3 月 5 日
Hello,
I'm trying to get the row number where my "goal" value (hier max time /10) is inside my tolerance of 0.001.
%Speed_profil.motorized.time -> Vector 100x1 from 0 to 4,5sec
Ramp=10;
goal = (Speed_profil.motorized.time(end,1)/Ramp);
idx_tol_mot = find(abs(Speed_profil.motorized.time-goal) < 0.001);
The fact to use the find funciton gives me a Vactor as a result.
I'm using this idx_tol_mot in an equation of the form y=ax+b to limit my Speed_profil.motorized.time vector (100x1 matrix).
Speed_profil.motorized.closing.values(1:idx_tol_mot,1) = (- a_mot * Speed_profil.motorized.time(1:idx_tol_mot,1));
Is there an alternative to the find function which can give a scalar variable? or can I convert the idx_tol_mot variable?
Thanks

回答 (1 件)

Jan
Jan 2021 年 4 月 8 日
編集済み: Jan 2021 年 4 月 8 日
Maybe:
idx_tol_mot = find(abs(Speed_profil.motorized.time-goal) < 0.001, 1, 'first');
or
idx_tol_mot = find(abs(Speed_profil.motorized.time-goal) < 0.001, 1, 'last');
But this the output can be empty also, if no matching values are found.
  3 件のコメント
Alexander Lachenmaier
Alexander Lachenmaier 2022 年 3 月 5 日
Hi,
have you found a solution to this error? I am facing the exact same problem at the Moment.
Alex
Jan
Jan 2022 年 3 月 5 日
@Alexander Lachenmaier: The original question wasn't clear. The OP showed a method, which replies a vector and asked, how to get a scalar. But when all we see is the code to produce a vector, it is impossible to guess, what it wanted instead.
Therefore I'm astonished, that you have "the same problem". Prefer to open a new thread and explain the details of your code.

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

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

タグ

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by