首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要这个在我的生物课上。使用MATLAB!

我需要这个在我的生物课上。使用MATLAB!
EN

Stack Overflow用户
提问于 2010-10-19 08:16:18
回答 2查看 155关注 0票数 0

我正试着每小时监测一次工厂的平均温度,以确保质量控制。我如何编写一个脚本来查看工厂内部的温度作为时间的函数,并输出温度低于10摄氏度和高于80摄氏度时的时间。我的脚本应该说明温度何时超出边界,以及温度是多少。我想使用以下数据:

代码语言:javascript
复制
Temperature = [-15 -5  5  15  24  33  42  51  59  66  73  79  85  90  78]

第一次测量是在早上5点,最后一次测量是在晚上7点。我想用24小时制而不是12小时制来显示时间。

EN

回答 2

Stack Overflow用户

发布于 2011-07-31 07:12:32

看起来你需要遍历温度向量的元素,找出哪些低于10度,哪些高于80度。在传统的编程语言中,您将使用FOR循环来遍历数组或向量的元素,但在MATLAB中,您通常希望尽可能避免FOR循环,而是利用MATLAB的矢量化,因为它要快得多。

您将需要查看FIND函数(在控制台中键入'help find‘以获取更多信息)。但是,例如,如果我有一个向量:

代码语言:javascript
复制
A = [0 1 2 1 2 1 1 0];

并使用

代码语言:javascript
复制
find(A==0)

输出将是A的索引的向量,其中元素等于0:

代码语言:javascript
复制
[1 8]

我也可以这样做:

代码语言:javascript
复制
find(A==1 & A==0)

我就会得到

代码语言:javascript
复制
[1 2 4 6 7 8]

这很有用,因为虽然传统上使用索引访问向量的元素,但在MATLAB中可以使用另一个向量访问向量的元素。例如:

代码语言:javascript
复制
>> A = [-10 4 -2 3];
>> ind = [2 3];
>> A(ind)

ans =

     4    -2

MATLAB还简化了语法,因为您可以使用以下快捷方式,而不是显式使用FIND函数:

代码语言:javascript
复制
>> A = [-10 4 -2 3];
>> A( A<-5 | A>3)

ans =

   -10     4

这与使用FIND函数相同:

代码语言:javascript
复制
>> A(find(A<-5 | A>3))

ans =

   -10     4

我希望这能帮到你。很抱歉发了这么长的帖子。习惯MATLAB的矢量化代码编写方式需要一些时间,但是一旦你习惯了它,你就会发现它对计算非常有用。

票数 2
EN

Stack Overflow用户

发布于 2010-10-19 14:42:28

你可以像这样创建一个'time‘向量:

代码语言:javascript
复制
time = 5:1:19;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3964486

复制
相关文章

相似问题

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