Clear Filters
Clear Filters

Subdividing intervals from unequally spaced numbers

3 views (last 30 days)
Hi,
i want to generate points (say 11, variable xch) for a set of intervals defined by unequal spaced numbers (variable xn_ch). It seems that the code generates the points (xch) but with error, because xch vector dimension should not exceed the dimension of the initial generated numbers (xch, size=5). How to solve? Thanks in advance.
This is the code:
n=5
for i=1:n
xn_ch(i)=cos(pi*(2*i-1)/(2*n+2));
end
for i=1:n
xch=linspace(xn_ch(i),xn_ch(i+1),11)
end
xn_ch
This is the error:
Index exceeds the number of array elements. Index must not exceed 5.
Error in code (line 6)
xch=linspace(xn_ch(i),xn_ch(i+1),11)

Answers (1)

Manan Jain
Manan Jain on 12 Jul 2023
Hi!
The error you're encountering occurs because the loop index i in the second loop exceeds the range of valid indices for the xn_ch array. In the last iteration of the loop, i becomes 6, while xn_ch has only 5 elements.
n = 5;
for i = 1:n
xn_ch(i) = cos(pi * (2 * i - 1) / (2 * n + 2));
end
for i = 1:n-1
xch = linspace(xn_ch(i), xn_ch(i+1), 11);
end
xn_ch
To solve this issue, you can modify the loop to iterate from 1 to n-1 instead of n.
I hope this helps!
  4 Comments
Angelo
Angelo on 12 Jul 2023
Edited: Angelo on 12 Jul 2023
It works fine. Another question, hopefully my last, there is a double counting for the last point of each interval (the first for the next), see for example the value 0.7071 in the first column, repeated in the second and so on for the other two columns. I mean it is correct the subdivision (21 point for each subinterval) but the overall number of points is 84 with three more terms (i will use the numbers as x-values for a sum containing f(x) so i have addiction terms. How can avoid this problem?
Angelo
Angelo on 12 Jul 2023
Moved: Voss on 12 Jul 2023
I found this:
b = unique(b(:).')
But is it possible to solve without adding new code rows?

Sign in to comment.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!