How do I loop through incrementally changing values

1 visualización (últimos 30 días)
Highwayman2
Highwayman2 el 5 de Mayo de 2015
Respondida: David Sanchez el 5 de Mayo de 2015
I have two given formulae,
a = 0.1+3*10^-3 * alpha^2
and
b= 0.2+0.1*alpha - (3*10^-3)(alpha^2)
I want to run through values of alpha that increase in small increments (0.5) from 1 to 20.
I need the results from those to then run through the formula c = tan^-1(a/b) which needs to be plotted for all the different inputs.

Respuesta aceptada

Walter Roberson
Walter Roberson el 5 de Mayo de 2015
alphavals = 1:0.5:20;
for K = 1 : length(alphavals);
alpha = alphavals(K);
a = ...
b = ...
c(K) = atan2(b,a);
end
plot(alphavals, c);
Note that I adjusted to use the four-quadrant inverse tan; the formula as you wrote it would be only the two-quadrant inverse tan. You could create that if you really wanted:
c(K) = atan(a/b);
The code here shows what you asked, looping through changing the value of alpha. But it isn't nearly as efficient as it could be. Instead, you can use
alpha = 1:0.5:20;
temp = 3E-3 .* alpha.^2; %notice the .^ instead of plain ^
a = 0.1 + temp;
b = 0.2 + 0.1 .* alpha - temp;
c = atan2(b, a);
plot(alpha, c);

Más respuestas (2)

Nobel Mondal
Nobel Mondal el 5 de Mayo de 2015
You could utilize the colon and element-wise operators, instead of looping.
For example:
alpha = 1:0.5:20;
a = 0.1 + 3* 10^-3 * alpha.^2

David Sanchez
David Sanchez el 5 de Mayo de 2015
alpha = 1:0.5:20;
a = 0.1+3*10^-3 * alpha.^2;
b = 0.2+0.1*alpha - (3*10^-3)*(alpha.^2);
c = 1./tan(-a./b); % I don't know what is your equation
plot3(a,b,c)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by