2013-08-24 3 views
2

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

 velocity = input('Enter the velocities you want the aircraft to have at every node with space in between(m/s)','s'); 

и последующий использовать разделитель, чтобы читать числа между пробелами. Но даже для этого не знаю, как использовать встроенные функции.

 [u,remain] = strtok(velocity); 

Если нет никакого способа, чтобы получить несколько входов непосредственно, как я могу поставить выше в петлю, так что я могу прочитать все номера? Приносим извинения, если qustion очень рудиментарна, и ваша помощь будет высоко оценена.

ответ

3

Дайте массив в качестве входного

>> velocity = input('Enter the velocities you want the aircraft to have at every node with space in between(m/s)','s'); 
Enter the velocities you want the aircraft to have at every node with space in between(m/s) [1 2 3] 
>> velocity 

velocity = 

[1 2 3] 

А затем можно использовать velocity(1), velocity(2), ... и т.д.

Или использовать регулярные выражения, если вы планируете дать отделенной запятую входного данные

>> velocity = input('Enter the velocities you want the aircraft to have at every node with space in between(m/s)','s'); 
Enter the velocities you want the aircraft to have at every node with space in between(m/s)1,2,3 
>> result=regexp(velocity,',','split') 

result = 

    '1' '2' '3' 

(так же вы можете использовать пространство для разделения входов)

+0

Благодарим за быстрый ответ. :) –

+0

@LakshmiNarayanan: D – P0W

+1

Есть небольшая ошибка, я чувствую. Первый, не дает массив напрямую. Вы должны удалить параметр 's' в конце входного аргумента. –

1

Это можно сделать:

result = input('prompt'); 

Matlab запросит у вас приглашение, и вы можете ввести, например, [1 2 3]. Результатом будет вектор с предыдущими числами в нем.

Смежные вопросы