Matlab 这个错误消息是什么意思?下标索引必须是实正整数或逻辑数

Matlab 这个错误消息是什么意思?下标索引必须是实正整数或逻辑数,matlab,Matlab,我试图调试一个简单的样本统计数据。错误消息: 下标索引必须是实正整数或逻辑数 我最近因为做作业而犯了这个错误。这是什么意思 clc format short g s=[0.90 1.32 1.96 1.85 2.29 1.42 1.35 1.47 1.74 1.82... 1.30 1.47 1.92 1.65 2.06 1.55 1.95 1.35 1.78 2.14... 1.63 1.66 1.05 1.71 1.27]; mean=mean(s) median=median(s) mo

我试图调试一个简单的样本统计数据。错误消息:

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

我最近因为做作业而犯了这个错误。这是什么意思

clc
format short g
s=[0.90 1.32 1.96 1.85 2.29 1.42 1.35 1.47 1.74 1.82...
1.30 1.47 1.92 1.65 2.06 1.55 1.95 1.35 1.78 2.14...
1.63 1.66 1.05 1.71 1.27];
mean=mean(s)
median=median(s) 
mode=mode(s)
max=max(s); min=min(s); 
range=max-min ,std=std(s) ,var=var(s)
cvcd=std/mean*100

得到该错误是因为在编写时覆盖了内置变量:
mean=mean(s)
。其他所有函数也是如此

如果这样做,第一次调用脚本时,它将计算平均值。但是,第二次,MATLAB将
mean(s)
解释为变量
mean
的第s个值。显然不可能得到标量的第0.9个元素,因此会得到一条错误消息

你应该做的是:

mean_val = mean(s);       
median_val = median(s);
也就是说,给变量起一个名字,不要和内置函数混淆


要清楚的是,当你尝试这一点,仍然会得到相同的错误。确保
清除
工作区,或者至少清除名称与内置函数名称冲突的变量

您的问题是,变量名覆盖了内置函数。第一次运行
mean=mean(s)
没有问题,但第二次运行
mean
是双精度结果,使用双精度索引

不要使用与内置函数相同的变量名