2012-03-25 7 views
0

Ich muss ein Matlab-Programm erstellen, das numerische Werte von einem Benutzer akzeptiert, bis sie N eingeben und die Werte in einem Vektor speichern.Empfangen von Eingabe für einen Benutzer und Speichern der Informationen in einem Vektor

Bisher habe ich

Y=true; 
N = false; 
while (true) 
    for k=... 
     grades(k)=input('Enter a numerical value from 0 to 100: \n'); 
     d = input('Do you want to enter another grade? (Y/N): \n'); 
    end 
end 

Das Problem, das ich habe, ist, wie lagere ich diese Informationen in einem Vektor, wenn ich weiß nicht, wie viele Werte der Benutzer eingeben wird?

Antwort

1

Die einfachste Möglichkeit besteht darin, die neue Benutzereingabe mit einem Benutzereingabevektor zu verketten. Auf diese Weise wird Ihr Vektor immer wachsen. Die andere Sache ist Ihre for Schleife, müssen Sie die Schleife zu brechen, wenn der Benutzer N, richtig? Sie brauchen also die beiden Loops wirklich nicht, sonst läuft Ihr Skript indefinet.

Y=true; 
N = false; 
grades = []; 
while (d ~= 'n' && d ~= 'N') 
    grades = [grades input('Enter a numerical value from 0 to 100: \n')]; 
    d = input('Do you want to enter another grade? (Y/N): \n'); 
end 

Eine letzte Sache: Matlab wird sich beschweren, und schlagen vor, dass Sie die Noten vor zuordnen. Aber sine, Sie wissen nicht vorher die Größe des Vektors, und dies ist völlig nicht über die Geschwindigkeit, diese Lösung ist gut genug, denke ich.

Viel Glück

+0

Ahhh, macht Sinn. Vielen Dank! – helloimbarbara

Verwandte Themen