Using a for loop from i = 2:N producing Error

2 visualizaciones (últimos 30 días)
George Pantelidis
George Pantelidis el 7 de Dic. de 2023
Respondida: Udit06 el 21 de Dic. de 2023
Hello, I am working on a project and getting the error:
Index exceeds the number of array elements. Index must not exceed 2.
Error in Final_Project (line 40)
Vel(i) = (A(h)*Vel(h)) / A(i);
This happens with:
x = linspace(0,2,20);
P(1) = 300;
Vel(1) = 5;
A(1) = (pi*((Dia(1)^2)/4));
Unrecognized function or variable 'Dia'.
N = length(x);
for i = 2:N
A(i) = (pi*((Dia(i)^2)/4));
Vel(i) = (A(i-1)*Vel(i-1)) / A(i);
P(i) = P(i-1) + (0.5*rho*Vel(i-1)) - (0.5*rho*v(i));
end
Is there a way to use a previous result without breaking the loop?
Thank you!
  1 comentario
Torsten
Torsten el 7 de Dic. de 2023
The line
Vel(i) = (A(h)*Vel(h)) / A(i);
is cannot be found in your code.
And we don't know whether Dia(i) and v(i) are somewhere else defined for i = 2,...,N.

Iniciar sesión para comentar.

Respuestas (1)

Udit06
Udit06 el 21 de Dic. de 2023
Hi George,
I understand that you are facing an error which indicates that the index you are using is exceeding the number of array elements. After looking at the code provided above, I would recommend you to make the following changes in the code to resolve the issue.
  1. Define the variable "rho"
  2. Variable "Dia" is also not defined and you are not using variable "x" anywhere else in the code. Hence, you might consider replacing "x" with "Dia" in the code and defining "Dia" in such a way that it does not contain 0.
  3. P(i) = P(i-1) + (0.5*rho*Vel(i-1)) - (0.5*rho*v(i)); In this line of code, variable "v" is not defined.Consider replacing "v" with "Vel".
Here is the code after making the changes suggested above:
% Define "rho", change the value of "rho" as per your requirement
rho=1;
% Removed "x" as it was not used in your code, and defined an array for "Dia"
% Change "Dia" as per your requirements.
Dia = rand(1,20)+5;
P(1) = 300;
Vel(1) = 5;
A(1) = (pi*((Dia(1)^2)/4));
% Replaced "x" with "Dia"
N = length(Dia);
for i = 2:N
A(i) = (pi*((Dia(i)^2)/4));
Vel(i) = (A(i-1)*Vel(i-1)) / A(i);
%Replaced "v" with "Vel"
P(i) = P(i-1) + (0.5*rho*Vel(i-1)) - (0.5*rho*Vel(i));
end
You can refer to the following MathWorks documentation to understand more about "Undefined Function or Variable" error:
I hope this helps.

Categorías

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

Etiquetas

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by