Borrar filtros
Borrar filtros

Why do I get 'Array indices must be positive or logical values' in symsum function?

1 visualización (últimos 30 días)
syms n
h=0.05;
U=0.02;
delta_t=1;
v=1.846*10^-5;
d=1.117;
t=50;
y=0.2;
P=pi;
F=symsum((1/n)*exp(-((n^2)*(P^2)*v*t)/(d*(h^2)))*sin(n*P(1-y/h)),n,1,300);
Array indices must be positive integers or logical values.
u=U*y/h-(2*U/P)*F(n);

Respuesta aceptada

Torsten
Torsten el 19 de Mzo. de 2023
Movida: Torsten el 19 de Mzo. de 2023
h=0.05;
U=0.02;
delta_t=1;
v=1.846*10^-5;
d=1.117;
t=50;
y=0.2;
P=pi;
n = 1:300;
Fn = 1./n.*exp(-(n.^2*P^2*v*t)/(d*h^2)).*sin(n*P*(1-y/h));
F = cumsum(Fn);
u=U*y/h-(2*U/P)*F;

Más respuestas (1)

Matt J
Matt J el 18 de Mzo. de 2023
Editada: Matt J el 19 de Mzo. de 2023
The error is because you appear to be indexing P with a non-integer. Did you mean to write,
sin(n*P*(1-y/h))
?
  5 comentarios
C Ma
C Ma el 19 de Mzo. de 2023
So basically I want to get the summation of F values by substituting n from 1 to 300 into this equation. F(n) is an array storing values with indices n=[1:300]. For example, F(3)=Fsum(1)+Fsum(2)+Fsum(3), F(2)=Fsum(1)+Fsum(2).
Matt J
Matt J el 19 de Mzo. de 2023
Torsten's answer should give that to you, but in the meantime, since I have answered your posted question, please Accept-click the answer and, if Torsten's response doesn't get you where you need, post a new question.

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by