Decimal numbers in a triple for loop
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi all, I want to run the equation for a range of q variables at an increment such as
q = 0.1:0.1:1;
I need to use a for loop, where actually I include 2 additional for loops:
a & b are 2 cells.
M=10;
for i=1:length(q)
for i1=1:M
for i2=1:M
n_pm(i)=n_pm(i)+exp(-1i*q(i)*(i1-i2))*a{i1}*b{i2};
end
end
n_pmT(i)=n_pm(i)/(2*M)^2;
end
This code however gives me either the error 'Subscript indices must either be real positive integers or logicals' or 'Index exceeds matrix dimensions', depending on how I define q in the loop.
Looking forward for some help!
Thank you in advance.
1 comentario
James Tursa
el 21 de Mzo. de 2018
It would help if you copy & pasted the entire error message for us, including the offending line.
Respuestas (2)
James Tursa
el 21 de Mzo. de 2018
Have you inadvertently created a variable with the name 'exp' in your workspace? If so, clear it and don't use that name for a variable.
4 comentarios
James Tursa
el 22 de Mzo. de 2018
This error:
'Subscript indices must either be real positive integers or logicals' or 'Index exceeds matrix dimensions'
was probably caused by a variable named 'exp' in your workspace.
This error:
'Index exceeds matrix dimensions'
is different, and means exactly what it says. Did you use the dbstop debugging tip I gave you? When the code paused, what were these values:
i
i1
i2
numel(q)
numel(n_pm)
numel(n_pmT)
numel(a)
numel(b)
Auryn_
el 22 de Mzo. de 2018
Editada: Auryn_
el 22 de Mzo. de 2018
2 comentarios
James Tursa
el 22 de Mzo. de 2018
Well, it may run but I have my doubts that this code actually does what you want it to. Inside your inner loop you have n_pm=n_pm+etc. Do you realize that the etc part is added to all of the elements of n_pm at each iteration? Is that what you really want?
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!