MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 求助,程序中的问题,请高手指教! (https://www.labfans.com/bbs/showthread.php?t=7983)

physalis 2009-04-29 13:57

求助,程序中的问题,请高手指教!
 
1 个附件
程序语句如下
function y=temper
clear
alt=xlsread('f:\0811252045alt');...
sig=xlsread('f:0811252045sig');
syms pz pz0 z z0 nz0 jf tz0 tz
h=0;g=9.75;m=1;r=1;z0=47400;
for i=1:1024;
h=h+1;
z=alt(h);pz=sig(h);
nz=((pz*(z^2))/(pz0*(z0^2)))*nz0;
jf=g*nz;
int(jf,z,z0);
tz=(tz0*nz0+m/r*jf)/nz
end

这么运行的话没有问题,但是增加了几个已知量之后,程序如下
function y=temper
clear
alt=xlsread('f:\0811252045alt');...
sig=xlsread('f:0811252045sig');
syms pz pz0 z z0 nz0 jf tz0 tz
h=0;g=9.75;m=1;r=1;z0=47400;nz0=1.43e-3;...
tz0=270.65;nz=1.37e-3;pz0=347;
for i=1:1024;
h=h+1;
z=alt(h);pz=sig(h);
nz=((pz*(z^2))/(pz0*(z0^2)))*nz0;
jf=g*nz;
int(jf,z,z0);
tz=(tz0*nz0+m/r*jf)/nz
end

运行显示
??? Function 'int' is not defined for values of class 'double'.

Error in ==> temper at 12
int(jf,z,z);
貌似是数据类型的问题吧?但是用double也不行,想请教一下这种情况应该怎么定义数据类型才能使积分正常运行?请高手指教!

physalis 2009-04-29 20:57

回复: 求助,程序中的问题,请高手指教!
 
没有人帮忙么:(:(

mathjiang 2009-04-29 21:56

回复: 求助,程序中的问题,请高手指教!
 
y 是输出,语句中怎么没有y?

physalis 2009-04-30 15:40

回复: 求助,程序中的问题,请高手指教!
 
[QUOTE=mathjiang;26894]y 是输出,语句中怎么没有y?[/QUOTE]

那句话可以去掉的。。。

mathjiang 2009-04-30 20:44

回复: 求助,程序中的问题,请高手指教!
 
读程序很累,感觉语句书写不规范,比如那个循环就不必如此书写。
错误在于,jf 本质上已经不是符号型变量了,而是double型数值。

physalis 2009-04-30 22:05

回复: 求助,程序中的问题,请高手指教!
 
[QUOTE=mathjiang;26983]读程序很累,感觉语句书写不规范,比如那个循环就不必如此书写。
错误在于,jf 本质上已经不是符号型变量了,而是double型数值。[/QUOTE]

确实是double型。。但是我太新手了不会用double。。按照int的用法他就会说too many input argument。。


所有时间均为北京时间。现在的时间是 11:28

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.