Получение входных данных для пользователя и сохранение информации в векторе - PullRequest
0 голосов
/ 26 марта 2012

Мне нужно создать программу Matlab, которая принимает числовые значения от пользователя, пока они не введут N, и сохранит значения в векторе.

Пока у меня есть

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 голос
/ 26 марта 2012

Самый простой способ - объединить новый пользовательский ввод с вектором пользовательского ввода. Таким образом, ваш вектор всегда будет расти. Другая вещь - ваш for цикл, вы должны разорвать его, когда пользователь наберет N, верно? Таким образом, вам действительно не нужны эти два цикла, иначе ваш скрипт будет работать неопределенно долго.

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

И последнее: Matlab будет жаловаться и предлагать вам заранее распределить оценки. Но если вы заранее не знаете размер вектора, и это совсем не скорость, это решение достаточно хорошее, я думаю.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...