2013-08-24 2 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'); 

이상은 공백 사이의 숫자를 읽는 데 구분 기호를 사용한다. 그러나 그 경우에도 inbuilt 함수를 사용하는 방법을 잘 모릅니다.

 [u,remain] = strtok(velocity); 

여러 입력을 직접받을 방법이없는 경우 위의 내용을 루프에 넣으면 모든 숫자를 읽을 수 있습니까? 퀘스트가 아주 초보적이라면 도움을 많이 주시면 사과드립니다.

답변

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] 
>> velocity 

velocity = 

[1 2 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 
>> result=regexp(velocity,',','split') 

result = 

    '1' '2' '3' 

주세요 (유사 당신은 사용할 수 있습니다 또한 입력을 분리하기위한 공간)

+0

빠른 응답 감사합니다. :) –

+0

@ LakshmiNarayanan : D – P0W

+1

작은 오류가 있습니다. 첫 번째는 직접 배열을 제공하지 않습니다. 입력 인수의 끝에서 's'매개 변수를 제거해야합니다. –

1

이것은 다음으로 수행 할 수 있습니다.

result = input('prompt'); 

Matlab은 '프롬프트'를 묻는 메시지를 표시하고 예를 들어 [1 2 3]을 입력 할 수 있습니다. 결과는 이전 숫자와 함께 벡터가됩니다.