필터 지우기
필터 지우기

Multiply two terms at a set distance apart from each other in an array

조회 수: 1 (최근 30일)
Tb
Tb 2021년 3월 4일
편집: Stephen23 2021년 3월 4일
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
Jan
Jan 2021년 3월 4일
Note: "var" is a built-in Matlab function. After shadowing it by using this as name of a variable, you cannot call var() anymore.

댓글을 달려면 로그인하십시오.

답변 (3개)

Stephen23
Stephen23 2021년 3월 4일
편집: Stephen23 2021년 3월 4일
The MATLAB approach:
v = arr(1:end-23) .* arr(24:end);

源樹 上林
源樹 上林 2021년 3월 4일
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.

Jan
Jan 2021년 3월 4일
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.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by