for loop , max and min function with matlab solve function

8 次查看(过去 30 天)
Hi guys, i have been trying to get a max value of solPw1 displayed from this code but it doesn't work. it keeps displaying all the solPw1. When tet increases a new value for solPw1 is generated in the handle but i can't get the maximum of solPw1 displayed. Thanks a lot for you help.
for tet = 0:1:5
A= cosd(IA)*(cosd(IA)*(1-2*cosd(2*tet))*cosd(az)^2+2*sind(2*az)*sind(2*tet))+sind(az)^2*(1+2*cosd(2*tet));
B= cosd(IA)*(cosd(IA)*(1-2*cosd(2*tet))*sind(az)^2-2*sind(2*az)*sind(2*tet))+cosd(az)^2*(1+2*cosd(2*tet));
C= (1-2*cosd(2*tet))*sind(IA)^2;
D= cosd(az)^2*sind(IA)^2+2*v*sind(2*az)*cosd(IA)*sind(2*tet)+2*v*cosd(2*tet)*(sind(az)^2-cosd(az)^2*cosd(IA)^2);
E= sind(az)^2*sind(IA)^2-2*v*sind(2*az)*cosd(IA)*sind(2*tet)+2*v*cosd(2*tet)*(cosd(az)^2-sind(az)^2*cosd(IA)^2);
F= cosd(IA)^2-2*v*sind(IA)^2*cosd(2*tet);
G= -(sind(2*az)*sind(IA)*cosd(tet)+cosd(az)^2*sind(2*IA)*sind(tet));
H= sind(2*az)*sind(az)*cosd(tet)-sind(az)^2*sind(2*IA)*sind(tet);
I= sind(2*IA)*sind(tet);
O= str2double(get(handles.display8,'String'));
P= str2double(get(handles.display9,'String'));
Q= str2double(get(handles.display10,'String'));
R= str2double(get(handles.display11,'String'));
X= (A+D)* O+(B+E)*P+(C+F)*Q;
Y= (A-D)*O+(B-E)*P+(C-F)*Q;
Z= 4*((G*O)+(H*P)+(I*Q))^2;
set(handles.text11,'String', X);
set(handles.text12,'String', Y);
set(handles.text13,'String', Z);
M= 1+(SF-1)*cosd(IF)^2;
syms Pw1
Pw=((3*M)+sind(IF))*Pw1+(sind(IF)-M)*(sqrt(((Y-Pw1)^2)+Z)+X)-(4*BC*R*sind(IF))+(4*CH*cosd(IF))==0;
solPw1 = vpa(solve(Pw,Pw1));
set(handles.PW_Breakout1,'String',char(max(vpa(solPw1,3))));

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Assumptions 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by