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