我试图每小时监控一次制造中的平均温度,以确保质量控制。如何编写一个脚本来查看工厂内的温度作为时间的函数,并输出温度低于10摄氏度时和温度高于80摄氏度时的时间。我的脚本应该说明温度何时超出边界以及温度是多少。我想使用以下数据:
Temperature = [-15 -5 5 15 24 33 42 51 59 66 73 79 85 90 78]
第一次测量在凌晨5点进行,最后一次测量在晚上7点进行。我想用24小时制而不是12小时制来显示时间。
答案 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;