user12428
user12428

Reputation: 17

looping in a matlab script

I am using matlab for part of my final year project. I am solving a geometric series such as the sum of x^j, starting from j=0 up to n-1. I have the following code so far:

$Variable dictionary
%N Number of terms to sum
%alpha Sum of series
%x Vector of constants 
%n Loop counter

N = input('Enter the number of terms to sum: ');
alpha = 0;
x = [0.9 0.99 0.999 0.9999 0.99999 0.999999];
for n = 0:N-1
alpha = alpha + (x.^(n));
end
format long
alpha

When I run this script it is allowing me to put in the values of x in the script as a vector but asks the user for values of n. Is there anyway I can amend my code so that I can put the n in myself? And make it more than one value of n?

Thanks

Upvotes: 0

Views: 192

Answers (3)

Luis Mendo
Luis Mendo

Reputation: 112679

Maybe this is what you want (no loops needed):

x = [0.9 0.99 0.999 0.9999 0.99999 0.999999];
n = [1 2 5];

alphas = sum(bsxfun(@power, x(:), n(:).')); %'// one result for each value of n

Upvotes: 2

m_power
m_power

Reputation: 3204

Here a solution:

x = [0.9 0.99 0.999 0.9999 0.99999 0.999999];
nlist = [10,100,1000];
for elm = nlist
    alpha = alpha + (x.^(elm));
end

Upvotes: 0

User1551892
User1551892

Reputation: 3364

Modify this part of code:

for n = 1: length(N)
alpha = alpha + (x.^(N(n)));
end

And pass the N as vector [10 100 1000]

Upvotes: 1

Related Questions