Converting a symbolic matrix to numeric
古いコメントを表示
Hi,
I am trying to convert a symbolic matrix to a numeric array, but am having no luck. Please refer to the code below.
Z = sym(zeros(200,1));
for i = 1:200
syms omega_n;
lambda = i*1e-7;
k_zeta = 2*pi/lambda;
kappa_n = n*pi/W;
k_n = sqrt(((kappa_n)^2) + ((k_zeta)^2))
Y(i,1) = k_n;
P_nn = (k_zeta*W)^2/(i*pi)^2;
yellow = omega_M*P_nn*(1-P_nn)*((sin(phi))^2);
green = 1 - (P_nn*(1+((cos(phi))^2)));
blue = omega_H + J*omega_M*((k_n)^2);
F_n = P_nn + green*((sin(theta))^2) + yellow/blue;
A = (sqrt(blue*(blue + (omega_M*F_n))))/(2*pi) - omega_n;
R = feval(symengine,'numeric::fsolve', A, 'omega_n=1e8')
Z(i) = vpa(omega_n);
%printf('For k = %d, freq = %d\n', k_zeta,A);
end
Y = int8(Y);
class(Z)
Z = vpa(Z,100);
class(Z)
%Z = vpa(Z);
scatter(Y,Z)
All of the variables, except for omega_n, are of type double.
When I attempt to use the 'double' function on object Z ie double(Z), I receive an error message
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array. If the input expression contains a symbolic variable, use the VPA function instead.
Can someone point out where I am going wrong? This is the first time I am trying to use the symbolic toolbox, so apologies if it is something obvious! Note I am using Matlab R2011b.
Thanks!
Carl
2 件のコメント
Azzi Abdelmalek
2014 年 1 月 12 日
You can make your question clear, by just posting the matrix you want to convert
Carl
2014 年 1 月 12 日
回答 (1 件)
Azzi Abdelmalek
2014 年 1 月 12 日
編集済み: Azzi Abdelmalek
2014 年 1 月 12 日
0 投票
3 件のコメント
Carl
2014 年 1 月 12 日
Azzi Abdelmalek
2014 年 1 月 12 日
If you post an example we can test, it will be useful
Carl
2014 年 1 月 12 日
カテゴリ
ヘルプ センター および File Exchange で Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!