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

2 visualizzazioni (ultimi 30 giorni)
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);

Risposta accettata

Torsten
Torsten il 19 Mar 2023
Spostato: Torsten il 19 Mar 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;

Più risposte (1)

Matt J
Matt J il 18 Mar 2023
Modificato: Matt J il 19 Mar 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 Commenti
C Ma
C Ma il 19 Mar 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 il 19 Mar 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.

Accedi per commentare.

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by