我的问题与整个程序不熟悉有关。已尝试以最大值和最小值显示时间值,但我不确定如何解决该问题。我已成功显示最大值和最小值,但无法将另一列中的值链接到这些数量。
问题如下: "a. 读取数据文件(使用 fscanfMat('SENSOR.txt') 命令)并打印数字 传感器的数量以及文件中包含的数据的秒数。请记住,第 1 栏 不包含传感器数据;它包含时间数据。 (提示:使用尺寸功能。) b.查找每个传感器上记录的最大值和最小值。 确定它们发生的时间。 c.查找每个传感器以及收集的所有数据值的平均值和标准偏差。”
SENSOR.txt 是: 0.70.6432 68.347 72.3469 67.6751 73.1764
(b) 部分我遇到的问题是编写代码,既可以找到每列中的最大值和最小值(我已经完成),但也包括每个值所在的时间值(第 1 列)发生。然后将这些值放入矩阵中并显示。
我当前代码的示例如下,我将非常感谢您的帮助。谢谢!
我尝试了两种不同的方法。第一个是将每一列显示为自己的变量,但这看起来很荒谬并且过于复杂。然后我厌倦了建立一个 [big,place(2:6)]=max(:,(2:6)) 来识别每个最大(或最小)值的位置,并将该值作为变量,然后基于脱离我之前定义的变量。我预计这会起作用,但我遇到了“子矩阵定义错误”的问题。
我建议您也查看 Scilab 帮助中的
find
函数,它为您提供(向量或矩阵的)“真实”索引,因此在向量 V 中最大值的索引(或相同的值)最大值重复!)是:
i = find( V == max( V ) );
向量
T
中对应的时间就是t=T(i)
。当然,您可以使用完整原始数据矩阵的子矩阵索引:
i = find( M(:,2) == max( M(:,2) ) );
t = M(i,1);