Оцените символьную функцию в Matlab

Я определил функцию в Matlab следующим образом: clg = 2*pi*(alpha-alphai+0.5*A(1));, где A — массив, зависящий от alpha. Я хочу оценить clg для aplha=0.53. Я пробовал subs(clg, alpha, 0.53), но выдает кучу странных ошибок:

Error using sym/subs>normalize (line 210)
Entries in second argument must be scalar.

Error in sym/subs>mupadsubs (line 136)
[X2,Y2,symX,symY] = normalize(X,Y); %#ok

Error in sym/subs (line 124)
    G = mupadsubs(F,X,Y);

Error in integral (line 45)
subs(clg, alpha, 0.53)

Любая идея о том, как этого добиться? Спасибо!


person jjssman    schedule 19.04.2015    source источник
comment
что такое alphai в уравнении?   -  person Benoit_11    schedule 19.04.2015
comment
alphai — это параметр, его значение примерно равно 0,53.   -  person jjssman    schedule 20.04.2015
comment
Итак, в вашем уравнении alpha и alphai отменяют друг друга?   -  person Benoit_11    schedule 20.04.2015
comment
Да, но A(1) по-прежнему зависит от alpha.   -  person jjssman    schedule 20.04.2015
comment
Пожалуйста, добавьте в свой вопрос полный пример кода, который позволяет воспроизвести проблему. Возможно, инициализация какой-то переменной неверна.   -  person Daniel    schedule 23.07.2015


Ответы (2)


У меня нет проблем с вашим вопросом.

>> syms x x1 x2
>> clg = 2*pi*(x-x1+0.5*x2);
>> subs(clg,x,0.53)

ans =

2*pi*(x2/2 - x1 + 53/100)
person user5146852    schedule 23.07.2015
comment
Это не аналог. - person Elias Hasle; 12.10.2019

Я пытаюсь воспроизвести проблему, но это работает:

syms x
%A is a symbolic matrix that depends on x
A = inv([10*x, 2*x, 3*x;
        4*x, 10, 6*x;
        7*x, 8*x, 10*x])
%y is a symbolic expression defined such that
%it depends on A, but collapses to an expression of x
y = x + 0.5*A(2,2)
%subs returns a symbolic (in this case fraction) evaluation:
subs(y, x, 3)
%eval returns a numeric evaluation:
x = 3
eval(y)

(Я столкнулся с тем же сообщением об ошибке, что и вы, в своем собственном коде, но еще не нашел его источник.)

person Elias Hasle    schedule 12.10.2019