matlab自变量多个值,经公式运算,输出多个结果,如何编程
>> syms C R
X;Y;A;
eq1=((C/((1/2)+X+(1/(0.013*R))))*(1-Y))-R;
eq2=((A*(11*(C-40)))/(8*(C+80)))-R;
s=solve(eq1,eq2);
C=vpa(s.C,5)
X,Y,A的值我需要自己的数据库输入,如何输入? 展开
1、首先,建立一个自定义函数文件。如ex_fun.m,其文件内容
function [C,R]=ex_fun(X,Y,A)
syms C R
eq1=((C/((1/2)+X+(1/(0.013*R))))*(1-Y))-R;
eq2=((A*(11*(C-40)))/(8*(C+80)))-R;
s=solve(eq1,eq2);
C=vpa(s.C,5);
R=vpa(s.R,5);
end
2、再命令窗口或程序文件中,输入下列命令
X=5;Y=10;A=3;
[C,R]=ex_fun(X,Y,A)
3、计算结果
C = 40., -6.929, -84.139
R = 0., -2.649, 123.70
这样的话,程序应采用循环语句来完成。即for。。。end语句
for i=1:n
X0=A(i,1);Y0=A(i,2);Z0=A(i,3);
syms C0 R0
eq1=((C0/((1/2)+X0+(1/(0.013*R0)))).*(1-Y0))-R0;
eq2=((Z0*(11.*(C0-40)))/(8*(C0+80)))-R0;
s=solve(eq1,eq2);
C(i,:)=vpa(s.C0,5);
R(i,:)=vpa(s.R0,5);
end
例如:
>>X=[4.142502071;5.213764338;4.295532646];Y=[0.6200;0.6200;0.6200];Z=[12;12;12];
>>[C,R]=ex_fun(X,Y,Z)
运行后得到如下结果