Borrar filtros
Borrar filtros

How to add to index in for loop?

3 visualizaciones (últimos 30 días)
Zach Dunagan
Zach Dunagan el 20 de Oct. de 2017
Comentada: Zach Dunagan el 24 de Oct. de 2017
I am converting Python to Matlab. Here is Python code.
  1. collocation points
xc=np.zeros((numPanels,1))
yc=np.zeros((numPanels,1))
for i in range(numPanels):
xc[i]=(xp[i]+xp[i+1])/2
yc[i]=(yp[i]+yp[i+1])/2
Here is my Matlab code...
% collection of points xc = zeros(numPanels, 1);
yc = zeros(numPanels, 1);
for k = numPanels
xc(k) = (xp(k) + xp(k+1))/2
yc(k) = (yp(k) + yp(k+1))/2
end
xp and yp are arrays. I am trying to add 1 to the second index of xp and yp, where it says xp(k+1) and yp(k+1). Would I need to make another for loop for the indexing that is being added to 1?

Respuesta aceptada

KSSV
KSSV el 20 de Oct. de 2017
Editada: Stephen23 el 22 de Oct. de 2017
xc = zeros(numPanels, 1);
yc = zeros(numPanels, 1);
for k = 1:numPanels-1
xc(k) = (xp(k) + xp(k+1))/2
yc(k) = (yp(k) + yp(k+1))/2
end
You are in MATLAB..you can avoid loops here.
xc = (xp(1:end-1)+xp(2:end))/2 ;
yc = (yp(1:end-1)+yp(2:end))/2 ;
But the problem is size of xc and yc will be one less then xp and yp.
  1 comentario
Zach Dunagan
Zach Dunagan el 24 de Oct. de 2017
That is fine. Why doesn't this work? I can only see the last value in the array.
% attaching/flipping xp and yp to the 66th % of the zero array
xp(66:end) = flipud(xp(1:numPanels/2));
yp(66:end) = -flipud(yp(1:numPanels/2));
% collocation points
xc = zeros(numPanels, 1);
yc = zeros(numPanels, 1);
for k = numPanels
xc(k) = (xp(k) + xp(k+1))/2;
yc(k) = (yp(k) + yp(k+1))/2;
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Call Python from MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by