我对Scilab比较陌生,我想在矩阵中找到一个数字的索引。
我已将我的数字定义为最大变形(MaxEYY
),并且在显示它时,它是正确的(我可以仔细检查我的* .csv文件)。但是,当我想使用find
命令确切地知道这个数字在我的矩阵中的位置时,只返回(1,1),但我知道这个数字位于(4,8)
我的矩阵不是很大(4x18)而且我知道这个数字只出现一次。在打开* .csv文件时,我删除了标题,因此没有文本。
任何人都可以帮我吗?
N=csvRead("file.csv",",",".",[],[],[],[],1)
EYY=N(:,8);
MaxEYY=max(EYY);
MinEYY=min(EYY);
[a,b]=find(MaxEYY);
disp([a,b]);
答案 0 :(得分:0)
首先,您需要了解find()
的工作原理:它在矩阵中查找true或false的值。因此,如果您想在其中找到某个值,则应该find(value == matrix)
。
然后,请注意,在您的代码中,您将find()
应用于MaxEYY
,这是一个单值,即标量,1 x 1矩阵。当你这样做时,你只能得到(1,1)或[]
作为结果。
现在,结合这两个信息,这就是你应该做的:
[a, b] = find(EYY == MaxEYY);
此外,还有一种更快捷的方法来获取此索引:max()
也可以通过执行
[MaxEYY, inds] = max(EYY);
同样适用于min()
。