使用find命令时返回Scilab不正确的索引

时间:2018-02-07 16:33:04

标签: csv find scilab indices

我对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]);

1 个答案:

答案 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()