Multiply two terms at a set distance apart from each other in an array
    9 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
So, say you have a row vector of 950 values. And you want to find the multiplication between 2 terms 23 elements apart, like 1 and 24, 2 and 25, 3 and 26 etc until 927 and 950. How can this be done?
I have written a for loop but it gives me an error. 
Loop:
for i = 1:950
    var = array(i+23)*array(i)
end
Error:
Index of array exceeds 950
Any help would be greatly appreciated. Thanks.
1 commentaire
  Jan
      
      
 le 4 Mar 2021
				Note: "var" is a built-in Matlab function. After shadowing it by using this as name of a variable, you cannot call var() anymore.
Réponses (3)
  源樹 上林
      
 le 4 Mar 2021
        array = 1:950;
for i = 1:950
    disp([ 'i = ' num2str(i) ' : array(' num2str( i+23 ) ')*array(' num2str( i ) ')' ])
    var = array(i+23)*array(i)
end
array(951) does not exist.
0 commentaires
  Jan
      
      
 le 4 Mar 2021
        The loop method:
array = rand(1, 950);
for i = 1:950 - 23
    v = array(i+23) * array(i)
end
Stephen's vectorized approach is nicer and faster.
0 commentaires
Voir également
Catégories
				En savoir plus sur Logical dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



