2015-09-14 2 views
0

Вот мой код:Как сохранить несколько входов в разных форматах?

angles = 'Please enter the Euler angles in degrees- yaw(x),pitch(y) and roll(z) \n:'; 
ea = input(angles,'s'); 
cos(ea(1)) 

Этот код сохраняет элементы входной строки «еа» как символ. Как сохранить вход в градусах напрямую? Использование соз (еа (1)) дает ошибку:

Undefined function 'cos' for input arguments of type 'char'. 

ответ

1

Во-первых, функция ввода возвращает строку, так что вам нужно будет преобразовать его в числовое значение. Во-вторых, cos принимает входные сигналы в радианах не в градусах, поэтому вам нужно будет либо преобразовать в радианы, либо использовать cosd вместо cos.

angles = 'Please enter the Euler angles in degrees- yaw(x),pitch(y) and roll(z) \n:'; 
ea = str2double(input(angles,'s')); 
cosd(ea(1)) 

Вы также можете использовать input без параметра 's'. В этом случае ввод будет оценивать выражение, переданное как строка, и возвращать результат. Например, в этом случае вы можете не только пройти одиночное значение, такие как «90», но вы можете также передать вещи, как: 3 * 180/4 в качестве входного

angles = 'Please enter the Euler angles in degrees- yaw(x),pitch(y) and roll(z) \n:'; 
ea = input(angles); 
cosd(ea(1)) 
+0

Хороший пример! Как мы все знаем, 'x * 180/4' - это формула для преобразования' x' из радианов в градусы, для 'pi = 4'. –

0

Делая input(prompt,'s'), вы конкретно говорить его верните пользовательский ввод как строку. Вам нужно отбросить 's', чтобы получить числовой ввод. Кроме того, вам нужно сделать input три раза, чтобы получить три входа. Используйте структуру для хранения ввода в разных полях, потому что она может принимать строку в качестве имени поля. Он более организован и легко понятен.

prompt = 'Please enter Euler angles in degress, '; 
choice = {'yaw(x): ', 'pitch(y): ', 'roll(z): '}; 

for ii = 1 : numel(choice) 
    ea.(choice{ii}(1:end-5)) = input([prompt, choice{ii}]); 
end 

Но, конечно, это будет также работать:

for ii = 1 : numel(choice) 
    ea(ii) = input([prompt, choice{ii}]); 
end 
Смежные вопросы