How do you perform generic value in MATLAB?
5 ビュー (過去 30 日間)
古いコメントを表示
Please, I would like guidance regarding how to run a generic simulation with values I don't know__ eg __ez .
theta = fi([0,pi/4,pi/3,pi/2,(2*pi)/3,(3*pi)/4,pi])
er=sin(theta)*ex+cos(theta)*ez
eo=cos(theta)*ex-sin(theta)*ez
0 件のコメント
回答 (2 件)
John D'Errico
2021 年 12 月 19 日
編集済み: John D'Errico
2021 年 12 月 19 日
If you do not know those parameters, then you don't know them. What "simulation" would you run? What meaning does it have?
At best, you can use symbolic tools to leave them undefined, but still you have essentially nothing but an equation. You can evaluate things as a function of theta, but your result will have those parameters in there as unknowns.
theta = fi([0,pi/4,pi/3,pi/2,(2*pi)/3,(3*pi)/4,pi])
Your next problem is that sin and cos are not defined for that class.
whos theta
So while we can define ex and ez as symbolic parameters, at best you can convert them to doubles to use trig functions. But even then, you still are not running a simulation of any sort, because those parameters are undefined.
syms ex ez
dtheta = double(theta);
er=sin(dtheta)*ex+cos(dtheta)*ez
eo=cos(dtheta)*ex-sin(dtheta)*ez
But if you try to compute the sin and cos of theta itself, it fails:
er=sin(theta)*ex+cos(theta)*ez
Could you convert to double, then back fo an fi objects for the numerical values? I suppose, but that seems to miss the point of using fi in the first place, and I have a funny feeling that syms won't mix well with the fi objects.
0 件のコメント
William Rose
2021 年 12 月 19 日
What is "fi()" in the first line of your code?
I am not sure I understand your question.
You can try different values for ex and ez. For each combination, you can plot er versus theta and eo versus theta.
If I remove the function "fi()" in line 1 of your code, and make guesses for the values of ex and for ez, and plot, then I get the following:
theta = [0,pi/4,pi/3,pi/2,(2*pi)/3,(3*pi)/4,pi];
ex=1; ez=0.5;
er=sin(theta)*ex+cos(theta)*ez;
eo=cos(theta)*ex-sin(theta)*ez;
plot(theta,er,'-r.',theta,eo,'-b.');
title('ex=1, ez=0.5');
legend('er','eo'); xlabel('theta');
Does that help?
2 件のコメント
John D'Errico
2021 年 12 月 19 日
fi creates a fixed point object, from the fixed point toolbox.
theta = fi([0,pi/4,pi/3,pi/2,(2*pi)/3,(3*pi)/4,pi])
whos theta
help fi
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!