Symbolic variables in a for loop

조회 수: 1 (최근 30일)
Nikolas Spiliopoulos
Nikolas Spiliopoulos 2018년 11월 12일
답변: Arjun 2024년 9월 11일
Hi all,
I am trying to create a sum of, which has x and I want to create a for loop to give me the result below :
A= [x(2:N)-x(1:N-1)] + [x(2+N:2*N)-x(1+N:2*N-1)]+ ......
So I want to create something like that:
if true
j=1;
for i=0:5 %let's say I want the dum of the first five
B=(x(2+N*i):j*N)-(x((1+N*i):j*N-1))) %Something like that, so I can sum them
j=j+1
end
Is it possible, to do it ?
Thanks

답변 (1개)

Arjun
Arjun 2024년 9월 11일
Hi,
I understand that you have a pattern in mind, and you want to sum up that sequence using for loop.
Let us assume that the length of the segment under consideration is “N” and the number of terms you want is “numSegments.” Then, the length of the array must be greater than “N*numSegments” for effective calculations to take place. We can run a for loop from 0 to “numSegments,” and each time we can perform the calculation inside the for loop and keep accumulating the result in a variable “B,” which will, in the end, contain the sum of differences for each segment.
Please refer to the following code for better understanding:
% Example parameters
N = 10; % Length of each segment
x = rand(1, 60); % Example data (make sure the length is at least N * (number of segments))
% Initialize the sum
B = zeros(1, N-1);
% Number of segments to sum
numSegments = 5;
% Loop over each segment
for i = 0:(numSegments-1)
% Calculate the start and end indices for the current segment
startIdx = 1 + N * i;
endIdx = N * (i + 1);
% Compute the difference for the current segment
segmentDiff = x(startIdx+1:endIdx) - x(startIdx:endIdx-1);
disp(segmentDiff)
% Accumulate the result
B = B + segmentDiff;
end
% Display the result
disp('Sum of differences for each segment:');
disp(B);
I hope this helps!

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by