2016-09-19 126 views
1

我想输入一个包含5个变量的MATLAB公式。下面是我做的:matlab中的符号数学公式

syms Pwf Pr Qo J Qmax 
Pwf = Pr((1.266 - (1.25*Qo/Qmax))^2) - 0.125 

我要运行它,使得每一次不同的变量,我可以输入不同的值,但它给出了一个错误:

Invalid indexing or function definition.

我应该怎么办呢?
谢谢

+1

第一个操作是乘法,即'Pr *(...)'?如果是这样,你*有*写*,否则MATLAB解释为函数调用或矩阵索引。 – hbaderts

+0

谢谢你hbaderts。这有效......但我现在如何输入值? – user6086432

+0

你想只给变量赋值吗?我了解你是否正确?所以你可以写syms = 15; PR = 2; ......,如果我弄错了,请更详细地解释你真正想要的东西! – KiW

回答

1

据我了解,你要创建一个名为Pwf功能,相对于PrQo

如果是这样的情况下,价值各不相同,你可以在MATLAB使用syms命令创建一个符号功能公益金与自变量PrQo

syms Pwf(Pr, Qo, Qmax) 
Pwf(Pr,Qo,Qmax) = Pr*((1.266 - (1.25*Q0./Qmax))^2) - 0.125; 

这创建了一个符号函数Pwf和符号变量Pr,Qo和。然后,您可以为变量分配不同的值,并调用函数Pwf

Pr = 1; 
Qo = 2; 
Qmax = 10; 
Pwf(Pr, Qo, Qmax) 

这将产生你一个结果分数如下。

ans = 113407/125000 

可以使用double()vpa()

>> vpa(ans) 
ans = 0.907256 

>> double(ans) 
ans = 0.9073 

您刚才提到关于其未在方程中使用另一个变量J,它可以被添加到功能类似的方式得到的数字输出。每次更改变量值时,只需调用函数Pwf(Pr, Qo, Qmax)即可。