J'essaie de créer un programme qui mappe des coordonnées. J'ai du mal à faire en sorte que Matlab sélectionne des valeurs spécifiques basées sur l'inégalité vectorielle. Peut-être que je le fais mal, mais voici mon code, où g est un vecteur donnant les emplacements globaux des points. EL est la longueur des "objets" et les coordonnées locales sont les coordonnées des points sur les "objets" pour un cas 1-D. Ensuite, ces coordonnées locales sont réévaluées pour donner une valeur de -1 à 1 sur la longueur de l'objet global. PL est l'emplacement des objets globalement.Matlab sélectionnant des valeurs basées sur des valeurs de matrice
%Get the local coordinates of the points
for g=(gp(gp>0))
for n1=(gp(gp<EL(1,1)))
gp1=[n1, 1];
end;
for x=(gp(PL((x1-1),1)<gp<PL((x1),1)));
gp2=[(x-(EL(x1,1))),1];
end
for x=(gp((PL(x1,1)<=gp)));
gp3=[((x)-(EL(x1,1))),1];
end
lpap=([gp1,gp2,gp3]);
%use the local coordinates to get the natural coordinates
for x=(gp(gp<=EL(1,1)))
nc=[((lpap*2)/EL(1,1))-1,1];
end
for x=(gp(PL(x1-1,1)<gp<PL(x1,1)));
nc1=[((lpap*2)/EL(x1,1))-1,1];
end
for p=(gp(PL(x1,1)<=gp));
nc2=[((lpap*2)/EL(x1,1))-1,1];
end
nct=[nc,nc1,nc2]
end
En plus NCT ne pas être -1 à 1 Je sais que quelque chose ne va pas en cours d'exécution parce que cela me donne une valeur constante pour les x, p, variables n1, qui devrait donner des valeurs multiples.
Ok, merci qui a aidé beaucoup. J'ai lu le contrôle de flux dans matlab et j'apprécie le lien. Je peux voir à quel point le code avait l'air idiot, j'avais juste essayé tant d'autres choses et c'était ce qui avait du sens dans ma tête. C'est la première fois que je programme en matlab. Cela fonctionne maintenant sauf pour une partie. Si je ne peux pas comprendre cela, je vais rediffuser le nouveau code. Merci encore – user618204