Find function - scalar result?
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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
0 Kommentare
Antworten (1)
  Jan
      
      
 am 8 Apr. 2021
        
      Bearbeitet: Jan
      
      
 am 8 Apr. 2021
  
      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 Kommentare
  Alexander Lachenmaier
 am 5 Mär. 2022
				Hi,
have you found a solution to this error? I am facing the exact same problem at the Moment.
Alex
  Jan
      
      
 am 5 Mär. 2022
				@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.
Siehe auch
Kategorien
				Mehr zu Spreadsheets finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



