la façon de sortie de l'itération de résultats à partir d'une boucle FOR dans la matrice et le graphe
J'ai deux for
boucles imbriquées format. Ma deuxième boucle calcule l'équation finale. L'affichage du résultat à l'extérieur de la deuxième boucle pour l'affichage lors de la deuxième boucle est terminée.
Ci-dessous est la logique que j'ai utilisé dans MATLAB. J'ai besoin de tracer le graphique de la eqn2
vs x.
L=100
for x=1:10
eqn1
for y=1:L
eqn2
end
value = num2strn eqn2
disp value
end
Actuellement le problème, je suis confronté est que la valeur ou la sortie de eqn2
est toujours remplacé après chaque cycle jusqu'à ce que x
atteint 10. Par conséquent, l'espace de travail de la table de eqn2
et de valeur que montre la dernière valeur. Mon intention est de documenter toutes les valeurs de sortie de value
dans chaque cycle de x à partir de 1:10.
Comment puis-je faire cela?
Vous devez vous connecter pour publier un commentaire.
Vous style pseudo-code un peu trop fort à mon goût - j'ai essayé de reconstituer ce que vous étiez en train de faire. Si j'ai bien compris, cela devrait le faire répondre à votre question (stocker les résultats intermédiaires du calcul dans la gamme Z):
Comme pour les autres questions que vous avez posées dans vos commentaires, vous pourriez probablement findd inspiration dans les éléments suivants:
Cela peut ne pas être ce que vous aviez à l'esprit - je ne comprends pas "exécuter la boucle jusqu'à ce que toutes les valeurs de z(y,x) <5, puis il se doit la sortie de l'x". Si vous exécutez l'extérieur de la boucle jusqu'à la fin (c'est la seule façon de savoir "toutes les valeurs de z(y,x)", puis votre valeur de x sera la dernière valeur qu'il était... C'est pourquoi je suggère de courir à travers toutes les valeurs de x et de y, la collecte de l'ensemble de la matrice Z, et puis en examinant Z pour les choses que vous voulez.
Par exemple, si vous vous demandez s'il existe une valeur de X pour laquelle tous les Z < 5, vous pourriez le faire (si vous n'avez pas à sortir de la
for
boucles):etc.
Si vous ne pouvez pas le comprendre, à partir d'ici, j'abandonne...
z'
(transpose) dans la commande plot. Qu'est-ce quesize(z)
etsize(x)
?plot(z')
devrait le faire...plot(z)
devrait fonctionner (ouz'
je ne me souviens jamais). Quant à la seconde question - quand vous dites "il faut briser", voulez-vous continuer encore? Dans ce cas, mieux calculer tous les de Z, puis imprimez les choses.find(Z<5)
sera de retour l'indice de l'ensemble Z des éléments < 5. Si vous nex2=repmat(1:10, [L 1]); y2=repmat(1:L,[10 1])';
vous pouvez faire une recherche pour toutes les valeurs x, y où Z<5 avecx2(Z<5)
ety2(Z<5)
. J'espère que ça aide.x
qui avaient les valeurs non entières; j'étais en y accédant avec un index entierxi
qui a integer (et pourrait donc être utilisé pour l'indexation). ainsi, x(xi) est une syntaxe valide; donc Z(yi, xi); mais Z(y, x) n'est pas, comme x et y ne sont pas (toujours) les nombres entiers.(s(x(xi))-4).
. Vous êtes indexation s avecx(xi)
- qui est un nombre à virgule flottante...for
boucle de vous définir un indicateurgoodRow=True
, et à l'intérieur de la boucle, vous le réglez àFalse
si vous ne parvenez pas à votre critère, puis vous testez le drapeau après l'intérieurefor
et se briser si c'est toujours Vrai...