Sorry for this post because I'm sure that is a really simple thing. I'm trying to compute a function between 1 to 10 with a step of 0.1 with a for loop. I wrote it like this:
for i=1:0.1:10;
theta=0;
betha=1/(1/(i+0.08*theta)-0.035/(1+theta^3));
Cp(i)=C1*(C2/betha-C3*betha*theta-C4*theta-C5)*exp(-C6/betha);
end
Matlab gives me the error: Array indices must be positive integers or logical values.
I understant that the problem here is how the index is the defined but I don't know how to solve it

1 Comment

Just let i be an an integer index and multiply it with your step size inside the loop like this:
i * 0.1

Sign in to comment.

 Accepted Answer

Indices must be integers greater than 0, or logicals.
Try this:
i=1:0.1:10;
for k = 1:numel(i)
theta=0;
betha=1/(1/(i(k)+0.08*theta)-0.035/(1+theta^3));
Cp(k)=C1*(C2/betha-C3*betha*theta-C4*theta-C5)*exp(-C6/betha);
end

More Answers (0)

Categories

Find more on Mathematics 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!