2015-04-03 3 views
1

Что у меня есть:Передача вектора другому вектору?

syms X Y 
funcF = [ (X.^2 + Y.^2 + X -4), (Y*cos(X) + X*Y.^3 - 1) ] 
z0 = [0.5, 2] 

Скажите, что я хочу передать z0 к funcF, я не знаю, как это сделать. (Мои знания о MATLAB не самая большая)

Так что я в настоящее время пытается:

funcF = funcF(z0) 

По сути, я хочу, чтобы напечатать что-то вроде этого:

[#1 #2] 
+1

Не понимаю downvotes. ОП ясно показывает, что он пробовал, и где трудности. – rayryeng

ответ

2

, потому что это выражение является символом, вам нужно использовать subs. subs заменяет символические переменные тем, что вы хотите ... и включает числа. Кроме того, поскольку это символическое выражение (спасибо Nasser), нет необходимости в операциях «точка-за-точкой» (т. Е. .^). Вы можете удалить их и использовать обычные скалярные операторы.

Таким образом, вы хотите заменить X и Y в выражении с соответствующими значениями в z0:

>> syms X Y; 
>> funcF = [ (X^2 + Y^2 + X -4), (Y*cos(X) + X*Y^3 - 1) ]; 
>> out = subs(funcF, {'X','Y'}, z0) 

out = 

[ 3/4, 2*cos(1/2) + 3] 
+0

ahh ok, собираюсь попробовать, спасибо! – user2925439

+0

"." не требуется, поскольку это сим, а не числа. На самом деле я не думаю, что "." даже поддерживается для симсов, как в числовых векторах. Он работает выше, потому что кажется, что он просто проигнорирован. Но это не нужно. – Nasser

+0

@ Nasser - я просто скопировал и вложил то, что OP положил в его/ее утверждение, но вы правы. – rayryeng

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