如何使用 find 函数知道索引的值?

How to know the value of indices using find function?

我有一个名为 datos1 的 4096x2 矩阵。我正在尝试从 [valor_maximo, canal_maximo]=max(datos1(:,2)); 的最高值绘制到

的给定百分比(最高值的 5%)
conteomin=ceil(valor_maximo*0.05);
[canal_minimo, valor_minimo]=find(datos1(:,2) == conteomin);

我的问题是,既然我在这两种情况下都有索引,我怎么知道 find 函数中的值?

目前,[canal_minimo, valor_minimo]=...returns canal_minimo 的值,但 valor_minimo 仅为每行的发生次数,而不是矩阵中的实际值;即 canal_minimo=3558 valor_minimo=1,而不是等于 conteomin.

fileID=fopen(uigetfile('*.txt', 'Seleccione el archivo'));
[archivo,~,~,~]=fopen(fileID(1));
datos1=dlmread(archivo,' ',10,0);
fclose(fileID);
set(handles.uitable1,'Data',datos1);

[valor_maximo, canal_maximo]=max(datos1(:,2));
conteomin=ceil(valor_maximo*0.05);
[canal_minimo, valor_minimo]=find(datos1(:,2) == conteomin);

[row,col]=find(LogicalExpression) 为每个遵循 LogicalExpression 的元素给出 row/column 索引。因此,在您的情况下: datos1 第二列的元素等于标量值 conteomin 的任何地方都将注册为 true,并且 canal_minimo 将具有行号; valor_minimo 显然是一个,因为它是列向量的列号,当然是第 1 天。 [row,col,val]=find() 在第三个输出中给出了值,但你不需要它,因为你要与一个硬数字进行比较(这是一个坏主意,因为 )。这是因为 val 将等于 conteomin 因为那是你要求的 。明确输出它是没有用的(在这种情况下)。