我在生物课上需要这个...使用MATLAB!

时间:2010-10-19 00:16:18

标签: matlab

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

Temperature = [-15 -5  5  15  24  33  42  51  59  66  73  79  85  90  78]

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

2 个答案:

答案 0 :(得分:1)

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

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

A = [0 1 2 1 2 1 1 0];

并使用

find(A==0)

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

[1 8]

我可以这样做:

find(A==1 & A==0)

我会得到

[1 2 4 6 7 8]

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

>> A = [-10 4 -2 3];
>> ind = [2 3];
>> A(ind)

ans =

     4    -2

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

>> A = [-10 4 -2 3];
>> A( A<-5 | A>3)

ans =

   -10     4

与使用FIND功能相同:

>> A(find(A<-5 | A>3))

ans =

   -10     4

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

答案 1 :(得分:0)

你可以像这样创建'时间'矢量:

time = 5:1:19;