首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中使用均值函数得到不同的结果

在MATLAB中使用均值函数得到不同的结果
EN

Stack Overflow用户
提问于 2019-03-07 22:15:22
回答 1查看 257关注 0票数 1

我最近才开始使用MATLAB,因为它非常适合机器学习等等。

目前,我正在进行某种类型的分类,如果我试图解释我想要完成的一切,那么它就会非常冗长和复杂,因此我将只说明给我带来问题的确切代码。

因此,我得到了一个1010x1764 single型矩阵。假设这个矩阵叫做train_examples_2_2,你可以在下面截图的右边看到它。

您还可以从上面的屏幕截图中(在右边)看到对meanstd的调用。

代码语言:javascript
复制
mean = mean(train_examples_2_2)
std = std(train_examples_2_2)

得出正确的结果。

但是,当我多次运行相同的代码时,有时会在行mean = mean(train_examples_2_2)上得到一个错误,声明:

数组索引必须是正整数或逻辑值。

我关心的确切代码是:

代码语言:javascript
复制
mean = mean(train_examples_2_2) % <----- error appears here
std = std(train_examples_2_2)
for i=1:size(train_examples_2_2,1)
   train_examples_2_2(i,:) = train_examples_2_2(i,:) - mean;
   train_examples_2_2(i,:) = train_examples_2_2(i,:) ./ std;
end
% end of standardisation process

其中train_examples_2_2是由一些函数提供的,这些函数我既没有创建,也不能修改。

根据MATLAB的文档:

如果A是一个矩阵,那么mean(A)返回一个包含每列平均值的行向量。

这是我在打开Matlab时第一次运行代码时得到的,但在那之后,它会产生前面提到的错误。

我正在使用MATLAB R2018b。

我犯了一个简单的错误,或者这可能是个窃听器?

谢谢你抽出时间来帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 22:38:57

与我们假设的python不同,您不应该/不能/不能/mussn重新定义函数名或默认变量。

代码语言:javascript
复制
mean = mean(train_examples_2_2) % <----- error appears here

matlab没有区分可调用的mean()函数和变量‘mean。特别令人困惑,因为索引和调用某物是用圆括号做的。

所以.?

称你的变量为某事物。除了mean以外。mean_已经能做到这一点了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55053665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档