Hi, so I want to store theta as a vector under my for loop. But only the last number of theta saves, does anyone know how to get that as a vector?
clear all;
v = 5.8;
u = 1/v;
Psph = [509.35 507.06 504.77 398.20 394.19 389.61 268.71 266.99 265.85];
E = [];
r1= 6731;
r2= 6731;
pi = 3.1416;
theta=[];
for delta = [29 30 31 59 60 61 89 90 91]
theta = r1*sin(delta)*u;
end
E = Psph/((r1.^2)*(r2.^2)*4*pi*(u.^2)*sin(delta)*(cos(theta)).^2);
A = sqrt(E);

 Réponse acceptée

James Tursa
James Tursa le 26 Nov 2015
Modifié(e) : James Tursa le 26 Nov 2015
theta(delta) = r1*sin(delta)*u; % <-- Added the (delta) indexing
You will also need to change some of your matrix operators to element-wise operators. E.g.,
E = Psph./((r1.^2)*(r2.^2)*4*pi*(u.^2)*sin(delta).*(cos(theta)).^2);
But note that this entire loop:
for delta = [29 30 31 59 60 61 89 90 91]
theta(delta) = r1*sin(delta)*u;
end
can be replaced with these lines:
delta = [29 30 31 59 60 61 89 90 91]
theta = r1*sin(delta)*u;

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 26 Nov 2015
v = 5.8;
u = 1/v;
Psph = [509.35 507.06 504.77 398.20 394.19 389.61 268.71 266.99 265.85];
r1= 6731;
r2= 6731;
pi = 3.1416;
delta = [29 30 31 59 60 61 89 90 91];
theta = r1*sin(delta)*u;
E = Psph./((r1.^2)*(r2.^2)*4*pi*(u.^2)*sin(delta).*(cos(theta)).^2);
A = sqrt(E);

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by