MATLAB:下标索引必须是实正整数或逻辑数

MATLAB:下标索引必须是实正整数或逻辑数,matlab,Matlab,获取此错误消息:“下标索引必须是实正整数或逻辑数”。不太清楚为什么?我试图纠正它,但没有成功。我是否需要写出我试图在计算中使用的数值 function [ T,P,rho ] = stdatm( h ); T0=288.16; P0=101.325; rho0=1.225; a=-6.5*10^-3; b=3*10^-3; c=-4.5*10^-3; d=4.0*10^-3; R=286.9; g=9.81; T1=T0+a*11000; P1=P0(T1/T0)^(-g/(a/R)); rh

获取此错误消息:“下标索引必须是实正整数或逻辑数”。不太清楚为什么?我试图纠正它,但没有成功。我是否需要写出我试图在计算中使用的数值

function [ T,P,rho ] = stdatm( h );
T0=288.16;
P0=101.325;
rho0=1.225;
a=-6.5*10^-3;
b=3*10^-3;
c=-4.5*10^-3;
d=4.0*10^-3;
R=286.9;
g=9.81;

T1=T0+a*11000;
P1=P0(T1/T0)^(-g/(a/R));
rho1=rho0(T1/T0)^((-g/(a/R))-1);

您可能缺少一个操作员(times
*
?):


在这里,您正在使用
T1/T0

P0
rho0
进行索引,您试图用作索引的变量中必须包含零或非整数。不看你的代码是不可能的。Suever说,Matlab指数从1开始。你能给我一个例子吗?我上面有我的代码?当你写‘P0(T1/T0)’时,matlab认为P0是数组(或函数,如果数组不存在),你试图用索引T1/T0访问它。所以,在@O'Neil的答案上加上:'P0*(T1/T0)'。如果不写乘法符号,Matlab将尝试使用索引
T1/T0
访问数组
P0
。然而,这个比率大约是“0.751”。。。所以它不是整数或逻辑。
P1=P0(T1/T0)^(-g/(a/R));
%    ^
rho1=rho0(T1/T0)^((-g/(a/R))-1);
%        ^