2012-03-25 29 views
0

ユーザがNを入力するまで数値を受け入れ、その値をベクトルに格納するmatlabプログラムを作成する必要があります。ユーザの入力を受け取り、その情報をベクトルに格納する

これまでのところ、私は

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 

を持っている私が午前問題は、私は、ユーザーが入力しようとしているどのように多くの値がわからない場合、私は、ベクトルにこの情報を保存しない方法ですか?

答えて

1

最も簡単な方法は、新しいユーザー入力をユーザー入力ベクトルに連結することです。そうすれば、あなたのベクトルは常に成長します。もう1つはあなたのforループです。ユーザーがNを入力したときにループを解除する必要がありますか?だからあなたは本当に2つのループを必要としません、そうでなければあなたのスクリプトはindefinetly実行されます。

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 

最後の1つ:matlabは、あなたがグレードを事前に配分することを訴えるでしょう。しかし、あなたはあらかじめベクトルの大きさを知りません。これはまったくスピードではないので、この解決策は十分です。

幸運

+0

ああ、意味があります。ありがとう! – helloimbarbara

関連する問題